ExoPlayerImplInternal.smali
.class public final Lcom/google/android/exoplayer2/ExoPlayerImplInternal;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/Handler$Callback;
.implements Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.implements Lcom/google/android/exoplayer2/source/MediaSource$Listener;
.implements Lcom/google/android/exoplayer2/trackselection/TrackSelector$InvalidationListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;,
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;,
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
}
.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 = 0xb
.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 = 0x1
.field private static final MSG_PERIOD_PREPARED:I = 0x8
.field public static final MSG_PLAYBACK_PARAMETERS_CHANGED:I = 0x6
.field public static final MSG_POSITION_DISCONTINUITY:I = 0x4
.field private static final MSG_PREPARE:I = 0x0
.field private static final MSG_REFRESH_SOURCE_INFO:I = 0x7
.field private static final MSG_RELEASE:I = 0x6
.field public static final MSG_SEEK_ACK:I = 0x3
.field private static final MSG_SEEK_TO:I = 0x3
.field private static final MSG_SET_PLAYBACK_PARAMETERS:I = 0x4
.field private static final MSG_SET_PLAY_WHEN_READY:I = 0x1
.field private static final MSG_SET_REPEAT_MODE:I = 0xc
.field private static final MSG_SET_SHUFFLE_ENABLED:I = 0xd
.field private static final MSG_SOURCE_CONTINUE_LOADING_REQUESTED:I = 0x9
.field public static final MSG_SOURCE_INFO_REFRESHED:I = 0x5
.field public static final MSG_STATE_CHANGED:I = 0x0
.field private static final MSG_STOP:I = 0x5
.field public static final MSG_TRACKS_CHANGED:I = 0x2
.field private static final MSG_TRACK_SELECTION_INVALIDATED:I = 0xa
.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 final mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
.field private mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.field private pendingInitialSeekCount:I
.field private pendingPrepareCount: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/PlaybackInfo;
.field private playbackParameters:Lcom/google/android/exoplayer2/PlaybackParameters;
.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 repeatMode:I
.field private shuffleModeEnabled:Z
.field private final standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
.field private state:I
.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;ZIZLandroid/os/Handler;Lcom/google/android/exoplayer2/ExoPlayer;)V
.registers 15
.line 139
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 140
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
.line 141
iput-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->trackSelector:Lcom/google/android/exoplayer2/trackselection/TrackSelector;
.line 142
iput-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
.line 143
iput-boolean p4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
.line 144
iput p5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->repeatMode:I
.line 145
iput-boolean p6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
.line 146
iput-object p7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 p3, 0x1
.line 147
iput p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
.line 148
iput-object p8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->player:Lcom/google/android/exoplayer2/ExoPlayer;
.line 150
new-instance p3, Lcom/google/android/exoplayer2/PlaybackInfo;
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
move-object v0, p3
invoke-direct/range {v0 .. v5}, Lcom/google/android/exoplayer2/PlaybackInfo;-><init>(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;IJ)V
iput-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 151
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 152
:goto_2d
array-length p5, p1
if-ge p4, p5, :cond_42
.line 153
aget-object p5, p1, p4
invoke-interface {p5, p4}, Lcom/google/android/exoplayer2/Renderer;->setIndex(I)V
.line 154
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_2d
.line 156
:cond_42
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 157
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.line 158
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 159
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 160
new-instance p1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
invoke-direct {p1}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
.line 161
invoke-virtual {p2, p0}, Lcom/google/android/exoplayer2/trackselection/TrackSelector;->init(Lcom/google/android/exoplayer2/trackselection/TrackSelector$InvalidationListener;)V
.line 162
sget-object p1, Lcom/google/android/exoplayer2/PlaybackParameters;->DEFAULT:Lcom/google/android/exoplayer2/PlaybackParameters;
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackParameters:Lcom/google/android/exoplayer2/PlaybackParameters;
.line 166
new-instance p1, Landroid/os/HandlerThread;
const/16 p2, -0x10
const-string p3, "ExoPlayerImplInternal:Handler"
invoke-direct {p1, p3, p2}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->internalPlaybackThread:Landroid/os/HandlerThread;
.line 168
invoke-virtual {p1}, Landroid/os/HandlerThread;->start()V
.line 169
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 disableRenderer(Lcom/google/android/exoplayer2/Renderer;)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 860
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
if-ne p1, v0, :cond_9
const/4 v0, 0x0
.line 861
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 862
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 864
:cond_9
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->ensureStopped(Lcom/google/android/exoplayer2/Renderer;)V
.line 865
invoke-interface {p1}, Lcom/google/android/exoplayer2/Renderer;->disable()V
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 540
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v1
.line 541
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePeriods()V
.line 542
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 544
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeThrowPeriodPrepareError()V
.line 545
invoke-direct {v0, v1, v2, v4, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->scheduleNextWork(JJ)V
return-void
:cond_16
const-string v3, "doSomeWork"
.line 549
invoke-static {v3}, Lcom/google/android/exoplayer2/util/TraceUtil;->beginSection(Ljava/lang/String;)V
.line 551
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
.line 552
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;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v6, v6, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
invoke-interface {v3, v6, v7}, Lcom/google/android/exoplayer2/source/MediaPeriod;->discardBuffer(J)V
.line 556
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_2f
if-ge v9, v6, :cond_6a
aget-object v12, v3, v9
.line 560
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_44
.line 561
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->isEnded()Z
move-result v7
if-eqz v7, :cond_44
const/4 v11, 0x1
goto :goto_45
:cond_44
const/4 v11, 0x0
.line 566
:goto_45
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->isReady()Z
move-result v7
if-nez v7, :cond_5a
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->isEnded()Z
move-result v7
if-nez v7, :cond_5a
.line 567
invoke-direct {v0, v12}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererWaitingForNextStream(Lcom/google/android/exoplayer2/Renderer;)Z
move-result v7
if-eqz v7, :cond_58
goto :goto_5a
:cond_58
const/4 v7, 0x0
goto :goto_5b
:cond_5a
:goto_5a
const/4 v7, 0x1
:goto_5b
if-nez v7, :cond_60
.line 569
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->maybeThrowStreamError()V
:cond_60
if-eqz v10, :cond_66
if-eqz v7, :cond_66
const/4 v10, 0x1
goto :goto_67
:cond_66
const/4 v10, 0x0
:goto_67
add-int/lit8 v9, v9, 0x1
goto :goto_2f
:cond_6a
if-nez v10, :cond_6f
.line 575
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeThrowPeriodPrepareError()V
.line 579
:cond_6f
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
if-eqz v3, :cond_90
.line 580
invoke-interface {v3}, Lcom/google/android/exoplayer2/util/MediaClock;->getPlaybackParameters()Lcom/google/android/exoplayer2/PlaybackParameters;
move-result-object v3
.line 581
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackParameters:Lcom/google/android/exoplayer2/PlaybackParameters;
invoke-virtual {v3, v6}, Lcom/google/android/exoplayer2/PlaybackParameters;->equals(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_90
.line 584
iput-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackParameters:Lcom/google/android/exoplayer2/PlaybackParameters;
.line 585
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v6, v3}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->setPlaybackParameters(Lcom/google/android/exoplayer2/PlaybackParameters;)Lcom/google/android/exoplayer2/PlaybackParameters;
.line 586
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v7, 0x6
invoke-virtual {v6, v7, v3}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v3
.line 587
invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
.line 591
:cond_90
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;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v6, v3, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->durationUs:J
const/4 v3, 0x4
const/4 v8, 0x3
const/4 v9, 0x2
if-eqz v11, :cond_bb
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
cmp-long v13, v6, v11
if-eqz v13, :cond_ac
.line 592
iget-object v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v11, v11, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
cmp-long v13, v6, v11
if-gtz v13, :cond_bb
:cond_ac
iget-object v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v11, v11, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-boolean v11, v11, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->isFinal:Z
if-eqz v11, :cond_bb
.line 596
invoke-direct {v0, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 597
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
goto :goto_103
.line 598
:cond_bb
iget v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne v11, v9, :cond_eb
.line 599
iget-object v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v11, v11
if-lez v11, :cond_d8
if-eqz v10, :cond_d5
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v7, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
iget-wide v10, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 601
invoke-virtual {v6, v7, v10, v11}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->haveSufficientBuffer(ZJ)Z
move-result v6
if-eqz v6, :cond_d5
const/16 v16, 0x1
goto :goto_de
:cond_d5
const/16 v16, 0x0
goto :goto_de
.line 602
:cond_d8
invoke-direct {v0, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isTimelineReady(J)Z
move-result v6
move/from16 v16, v6
:goto_de
if-eqz v16, :cond_103
.line 604
invoke-direct {v0, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 605
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-eqz v6, :cond_103
.line 606
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->startRenderers()V
goto :goto_103
:cond_eb
if-ne v11, v8, :cond_103
.line 610
iget-object v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v11, v11
if-lez v11, :cond_f3
goto :goto_f7
.line 611
:cond_f3
invoke-direct {v0, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isTimelineReady(J)Z
move-result v10
:goto_f7
if-nez v10, :cond_103
.line 613
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
iput-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 614
invoke-direct {v0, v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 615
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
.line 619
:cond_103
:goto_103
iget v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne v6, v9, :cond_115
.line 620
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v7, v6
const/4 v15, 0x0
:goto_10b
if-ge v15, v7, :cond_115
aget-object v10, v6, v15
.line 621
invoke-interface {v10}, Lcom/google/android/exoplayer2/Renderer;->maybeThrowStreamError()V
add-int/lit8 v15, v15, 0x1
goto :goto_10b
.line 625
:cond_115
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-eqz v6, :cond_11d
iget v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-eq v6, v8, :cond_121
:cond_11d
iget v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne v6, v9, :cond_125
.line 626
:cond_121
invoke-direct {v0, v1, v2, v4, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->scheduleNextWork(JJ)V
goto :goto_137
.line 627
:cond_125
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v4, v4
if-eqz v4, :cond_132
if-eq v6, v3, :cond_132
const-wide/16 v3, 0x3e8
.line 628
invoke-direct {v0, v1, v2, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->scheduleNextWork(JJ)V
goto :goto_137
.line 630
:cond_132
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {v1, v9}, Landroid/os/Handler;->removeMessages(I)V
.line 633
:goto_137
invoke-static {}, Lcom/google/android/exoplayer2/util/TraceUtil;->endSection()V
return-void
.end method
.method private enableRenderer(IZI)V
.registers 14
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 1491
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
aget-object v0, v0, p1
.line 1492
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
aput-object v0, v1, p3
.line 1493
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result p3
if-nez p3, :cond_70
.line 1494
iget-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object p3, p3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object p3, p3, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->rendererConfigurations:[Lcom/google/android/exoplayer2/RendererConfiguration;
aget-object v2, p3, p1
.line 1496
iget-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object p3, p3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object p3, p3, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->selections:Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;
invoke-virtual {p3, p1}, Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;->get(I)Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object p3
.line 1498
invoke-static {p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getFormats(Lcom/google/android/exoplayer2/trackselection/TrackSelection;)[Lcom/google/android/exoplayer2/Format;
move-result-object v3
.line 1500
iget-boolean p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
const/4 v1, 0x1
const/4 v4, 0x0
if-eqz p3, :cond_31
iget p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
const/4 v5, 0x3
if-ne p3, v5, :cond_31
const/4 p3, 0x1
goto :goto_32
:cond_31
const/4 p3, 0x0
:goto_32
if-nez p2, :cond_38
if-eqz p3, :cond_38
const/4 v7, 0x1
goto :goto_39
:cond_38
const/4 v7, 0x0
.line 1504
:goto_39
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object p2, p2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v4, p2, p1
iget-wide v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1506
invoke-virtual {p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v8
move-object v1, v0
.line 1504
invoke-interface/range {v1 .. v9}, 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 1507
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->getMediaClock()Lcom/google/android/exoplayer2/util/MediaClock;
move-result-object p1
if-eqz p1, :cond_6b
.line 1509
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
if-nez p2, :cond_5f
.line 1513
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 1514
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 1515
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackParameters:Lcom/google/android/exoplayer2/PlaybackParameters;
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/util/MediaClock;->setPlaybackParameters(Lcom/google/android/exoplayer2/PlaybackParameters;)Lcom/google/android/exoplayer2/PlaybackParameters;
goto :goto_6b
.line 1510
:cond_5f
new-instance p1, Ljava/lang/IllegalStateException;
const-string p2, "Multiple renderer media clocks enabled."
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-static {p1}, Lcom/google/android/exoplayer2/ExoPlaybackException;->createForUnexpected(Ljava/lang/RuntimeException;)Lcom/google/android/exoplayer2/ExoPlaybackException;
move-result-object p1
throw p1
:cond_6b
:goto_6b
if-eqz p3, :cond_70
.line 1519
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->start()V
:cond_70
return-void
.end method
.method private enableRenderers([ZI)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 1480
new-array p2, p2, [Lcom/google/android/exoplayer2/Renderer;
iput-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
const/4 p2, 0x0
const/4 v0, 0x0
.line 1482
:goto_6
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v1, v1
if-ge p2, v1, :cond_20
.line 1483
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object v1, v1, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->renderersEnabled:[Z
aget-boolean v1, v1, p2
if-eqz v1, :cond_1d
.line 1484
aget-boolean v1, p1, p2
add-int/lit8 v2, v0, 0x1
invoke-direct {p0, p2, v1, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enableRenderer(IZI)V
move v0, v2
:cond_1d
add-int/lit8 p2, p2, 0x1
goto :goto_6
:cond_20
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 854
invoke-interface {p1}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result v0
const/4 v1, 0x2
if-ne v0, v1, :cond_a
.line 855
invoke-interface {p1}, Lcom/google/android/exoplayer2/Renderer;->stop()V
:cond_a
return-void
.end method
.method private static getFormats(Lcom/google/android/exoplayer2/trackselection/TrackSelection;)[Lcom/google/android/exoplayer2/Format;
.registers 5
const/4 v0, 0x0
if-eqz p0, :cond_8
.line 1532
invoke-interface {p0}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v1
goto :goto_9
:cond_8
const/4 v1, 0x0
.line 1533
:goto_9
new-array v2, v1, [Lcom/google/android/exoplayer2/Format;
:goto_b
if-ge v0, v1, :cond_16
.line 1535
invoke-interface {p0, v0}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v3
aput-object v3, v2, v0
add-int/lit8 v0, v0, 0x1
goto :goto_b
:cond_16
return-object v2
.end method
.method private getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/Timeline;",
"IJ)",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 1263
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
move-object v0, p1
move v3, p2
move-wide v4, p3
invoke-virtual/range {v0 .. v5}, Lcom/google/android/exoplayer2/Timeline;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline$Window;Lcom/google/android/exoplayer2/Timeline$Period;IJ)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 1428
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 1432
: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 1413
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_25
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_25
.line 1417
: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 1418
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez p1, :cond_22
.line 1420
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 1421
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v0, p1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->startPositionUs:J
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 1422
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 1424
:cond_22
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
:cond_25
:goto_25
return-void
.end method
.method private handleSourceInfoRefreshEndedPlayback()V
.registers 2
const/4 v0, 0x0
.line 1150
invoke-direct {p0, v0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback(II)V
return-void
.end method
.method private handleSourceInfoRefreshEndedPlayback(II)V
.registers 12
.line 1154
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 1155
invoke-virtual {v0}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_d
const/4 v0, 0x0
goto :goto_1b
:cond_d
iget-boolean v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
.line 1156
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/Timeline;->getFirstWindowIndex(Z)I
move-result v1
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 1155
invoke-virtual {v0, v1, v3}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v0
iget v0, v0, Lcom/google/android/exoplayer2/Timeline$Window;->firstPeriodIndex:I
.line 1159
:goto_1b
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const-wide v5, -0x7fffffffffffffffL # -4.9E-324
const-wide v7, -0x7fffffffffffffffL # -4.9E-324
move v4, v0
invoke-virtual/range {v3 .. v8}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(IJJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const/4 v1, 0x4
.line 1160
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 1162
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const-wide/16 v5, 0x0
.line 1163
invoke-virtual/range {v3 .. v8}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(IJJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v0
.line 1162
invoke-direct {p0, p1, p2, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(IILcom/google/android/exoplayer2/PlaybackInfo;)V
.line 1165
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
return-void
.end method
.method private handleSourceInfoRefreshed(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;)V
.registers 22
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 976
iget-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;->source:Lcom/google/android/exoplayer2/source/MediaSource;
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
if-eq v2, v3, :cond_b
return-void
.line 981
:cond_b
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v2, v2, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 982
iget-object v9, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 983
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;->manifest:Ljava/lang/Object;
.line 984
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
invoke-virtual {v3, v9}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->setTimeline(Lcom/google/android/exoplayer2/Timeline;)V
.line 985
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual {v3, v9, v1}, Lcom/google/android/exoplayer2/PlaybackInfo;->copyWithTimeline(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const/4 v10, 0x0
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
const/4 v11, 0x0
if-nez v2, :cond_b7
.line 988
iget v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingPrepareCount:I
.line 989
iput v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingPrepareCount:I
.line 990
iget v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
const-wide/16 v6, 0x0
if-lez v5, :cond_70
.line 991
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSeekPosition(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)Landroid/util/Pair;
move-result-object v1
.line 992
iget v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
.line 993
iput v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
.line 994
iput-object v10, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
if-nez v1, :cond_45
.line 998
invoke-direct {v0, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback(II)V
return-void
.line 1000
:cond_45
iget-object v4, v1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v4, Ljava/lang/Integer;
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v4
.line 1001
iget-object v1, v1, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v1, Ljava/lang/Long;
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v12
.line 1002
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
.line 1003
invoke-virtual {v1, v4, v12, v13}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->resolvePeriodPositionForAds(IJ)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
move-result-object v9
.line 1004
iget-object v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual {v9}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result v1
if-eqz v1, :cond_65
move-wide v10, v6
goto :goto_66
:cond_65
move-wide v10, v12
:goto_66
invoke-virtual/range {v8 .. v13}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1006
invoke-direct {v0, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(II)V
return-void
.line 1008
:cond_70
iget-wide v12, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->startPositionUs:J
cmp-long v1, v12, v3
if-nez v1, :cond_b3
.line 1009
invoke-virtual {v9}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v1
if-eqz v1, :cond_80
.line 1010
invoke-direct {v0, v2, v11}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback(II)V
return-void
.line 1012
:cond_80
iget-boolean v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
.line 1013
invoke-virtual {v9, v1}, Lcom/google/android/exoplayer2/Timeline;->getFirstWindowIndex(Z)I
move-result v1
.line 1012
invoke-direct {v0, v9, v1, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
move-result-object v1
.line 1014
iget-object v3, v1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
.line 1015
iget-object v1, v1, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v1, Ljava/lang/Long;
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v4
.line 1016
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
invoke-virtual {v1, v3, v4, v5}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->resolvePeriodPositionForAds(IJ)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
move-result-object v13
.line 1018
iget-object v12, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1019
invoke-virtual {v13}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result v1
if-eqz v1, :cond_aa
move-wide v14, v6
goto :goto_ab
:cond_aa
move-wide v14, v4
:goto_ab
move-wide/from16 v16, v4
.line 1018
invoke-virtual/range {v12 .. v17}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1023
:cond_b3
invoke-direct {v0, v2, v11}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(II)V
return-void
.line 1028
:cond_b7
iget-object v1, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget v1, v1, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodIndex:I
.line 1029
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v5, :cond_c0
goto :goto_c2
:cond_c0
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_c2
if-nez v5, :cond_ce
.line 1031
invoke-virtual {v2}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v6
if-lt v1, v6, :cond_ce
.line 1032
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh()V
return-void
:cond_ce
const/4 v12, 0x1
if-nez v5, :cond_da
.line 1035
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 1036
invoke-virtual {v2, v1, v6, v12}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v6
iget-object v6, v6, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
goto :goto_dc
:cond_da
iget-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->uid:Ljava/lang/Object;
.line 1037
:goto_dc
invoke-virtual {v9, v6}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result v6
const/4 v13, -0x1
if-ne v6, v13, :cond_158
.line 1041
invoke-direct {v0, v1, v2, v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSubsequentPeriod(ILcom/google/android/exoplayer2/Timeline;Lcom/google/android/exoplayer2/Timeline;)I
move-result v1
if-ne v1, v13, :cond_ed
.line 1044
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback()V
return-void
.line 1048
:cond_ed
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 1049
invoke-virtual {v9, v1, v2}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v1
iget v1, v1, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
.line 1048
invoke-direct {v0, v9, v1, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
move-result-object v1
.line 1050
iget-object v2, v1, 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 1051
iget-object v1, v1, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v1, Ljava/lang/Long;
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v3
.line 1052
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v9, v2, v1, v12}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
if-eqz v5, :cond_13e
.line 1056
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v1, v1, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
.line 1057
iget-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
invoke-virtual {v6, v13}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->copyWithPeriodIndex(I)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v6
iput-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
.line 1058
:goto_11c
iget-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v6, :cond_13e
.line 1059
iget-object v5, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1060
iget-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->uid:Ljava/lang/Object;
invoke-virtual {v6, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_135
.line 1061
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
iget-object v7, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
invoke-virtual {v6, v7, v2}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->getUpdatedMediaPeriodInfo(Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;I)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v6
iput-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
goto :goto_11c
.line 1064
:cond_135
iget-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
invoke-virtual {v6, v13}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->copyWithPeriodIndex(I)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v6
iput-object v6, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
goto :goto_11c
.line 1069
:cond_13e
new-instance v8, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
invoke-direct {v8, v2}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;-><init>(I)V
.line 1070
invoke-direct {v0, v8, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)J
move-result-wide v9
.line 1071
iget-object v7, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1072
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh()V
return-void
:cond_158
if-eq v6, v1, :cond_162
.line 1078
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual {v1, v6}, Lcom/google/android/exoplayer2/PlaybackInfo;->copyWithPeriodIndex(I)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1081
:cond_162
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v1, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result v1
if-eqz v1, :cond_1a6
.line 1083
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v7, v2, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
invoke-virtual {v1, v6, v7, v8}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->resolvePeriodPositionForAds(IJ)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
move-result-object v15
.line 1085
invoke-virtual {v15}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result v1
if-eqz v1, :cond_186
iget v1, v15, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->adIndexInAdGroup:I
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v2, v2, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget v2, v2, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->adIndexInAdGroup:I
if-eq v1, v2, :cond_1a6
.line 1086
:cond_186
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v1, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
invoke-direct {v0, v15, v1, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)J
move-result-wide v16
.line 1087
invoke-virtual {v15}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result v1
if-eqz v1, :cond_198
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v3, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
:cond_198
move-wide/from16 v18, v3
.line 1088
iget-object v14, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual/range {v14 .. v19}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1089
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh()V
return-void
:cond_1a6
if-nez v5, :cond_1ac
.line 1096
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh()V
return-void
:cond_1ac
move v4, v6
.line 1102
:goto_1ad
invoke-direct {v0, v5, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePeriodInfo(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;I)Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
move-result-object v1
.line 1103
iget-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v2, :cond_20e
.line 1105
iget-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1106
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget v7, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->repeatMode:I
iget-boolean v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
move-object v3, v9
invoke-virtual/range {v3 .. v8}, Lcom/google/android/exoplayer2/Timeline;->getNextPeriodIndex(ILcom/google/android/exoplayer2/Timeline$Period;Lcom/google/android/exoplayer2/Timeline$Window;IZ)I
move-result v4
if-eq v4, v13, :cond_1d9
.line 1108
iget-object v3, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->uid:Ljava/lang/Object;
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 1109
invoke-virtual {v9, v4, v5, v12}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v5
iget-object v5, v5, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
invoke-virtual {v3, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_1d7
goto :goto_1d9
:cond_1d7
move-object v5, v2
goto :goto_1ad
.line 1114
:cond_1d9
:goto_1d9
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v3, :cond_1e4
iget v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget v4, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
if-ge v3, v4, :cond_1e4
const/4 v11, 0x1
:cond_1e4
if-nez v11, :cond_207
.line 1119
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v1, v1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v2, v2, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
.line 1120
invoke-direct {v0, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)J
move-result-wide v6
.line 1121
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v5, v1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v8, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
invoke-virtual/range {v4 .. v9}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
goto :goto_20e
.line 1126
:cond_207
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1127
iput-object v10, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1129
invoke-direct {v0, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 1135
:cond_20e
:goto_20e
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh()V
return-void
.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_30
.line 956
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
cmp-long v2, v0, p1
if-ltz v2, :cond_30
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_2e
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-nez p1, :cond_30
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-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object p1, p1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.line 959
invoke-virtual {p1}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result p1
if-eqz p1, :cond_2e
goto :goto_30
:cond_2e
const/4 p1, 0x0
return p1
:cond_30
:goto_30
const/4 p1, 0x1
return p1
.end method
.method private maybeContinueLoading()V
.registers 4
.line 1436
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder: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;->shouldContinueLoading(J)Z
move-result v0
.line 1437
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
if-eqz v0, :cond_14
.line 1439
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder: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;->continueLoading(J)V
:cond_14
return-void
.end method
.method private maybeThrowPeriodPrepareError()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 963
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 965
: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 966
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 970
: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 15
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1375
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_d
.line 1376
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->getFirstMediaPeriodInfo(Lcom/google/android/exoplayer2/PlaybackInfo;)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v0
goto :goto_50
.line 1378
:cond_d
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->isFinal:Z
if-nez v0, :cond_ab
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isFullyBuffered()Z
move-result v0
if-eqz v0, :cond_ab
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;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v0, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->durationUs:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-nez v4, :cond_2c
goto/16 :goto_ab
.line 1382
:cond_2c
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_3e
.line 1383
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
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_3e
return-void
.line 1389
:cond_3e
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1390
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v4
iget-wide v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 1389
invoke-virtual/range {v2 .. v7}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->getNextMediaPeriodInfo(Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;JJ)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v0
:goto_50
if-nez v0, :cond_58
.line 1393
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 1397
:cond_58
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v1, :cond_60
const-wide/32 v1, 0x3938700
goto :goto_6b
.line 1399
:cond_60
invoke-virtual {v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v1
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v3, v3, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->durationUs:J
add-long/2addr v1, v3
:goto_6b
move-wide v4, v1
.line 1400
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const/4 v12, 0x1
if-nez v1, :cond_74
const/4 v1, 0x0
const/4 v10, 0x0
goto :goto_78
:cond_74
iget v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
add-int/2addr v1, v12
move v10, v1
.line 1401
:goto_78
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v1, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget v2, v2, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodIndex:I
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v1, v2, v3, v12}, 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 v9, v1, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
.line 1402
new-instance v13, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
iget-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->trackSelector:Lcom/google/android/exoplayer2/trackselection/TrackSelector;
iget-object v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
iget-object v8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
move-object v1, v13
move-object v11, v0
invoke-direct/range {v1 .. v11}, 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;ILcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;)V
.line 1404
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v1, :cond_9f
.line 1405
iput-object v13, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1407
:cond_9f
iput-object v13, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1408
iget-object v1, v13, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
iget-wide v2, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->startPositionUs:J
invoke-interface {v1, p0, v2, v3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->prepare(Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;J)V
.line 1409
invoke-direct {p0, v12}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
:cond_ab
:goto_ab
return-void
.end method
.method private notifySourceInfoRefresh()V
.registers 2
const/4 v0, 0x0
.line 1169
invoke-direct {p0, v0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(II)V
return-void
.end method
.method private notifySourceInfoRefresh(II)V
.registers 4
.line 1173
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-direct {p0, p1, p2, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(IILcom/google/android/exoplayer2/PlaybackInfo;)V
return-void
.end method
.method private notifySourceInfoRefresh(IILcom/google/android/exoplayer2/PlaybackInfo;)V
.registers 6
.line 1177
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v1, 0x5
invoke-virtual {v0, v1, p1, p2, p3}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 1178
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method private prepareInternal(Lcom/google/android/exoplayer2/source/MediaSource;Z)V
.registers 21
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 384
iget v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingPrepareCount:I
const/4 v3, 0x1
add-int/2addr v2, v3
iput v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingPrepareCount:I
.line 385
invoke-direct {v0, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
.line 386
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
invoke-interface {v2}, Lcom/google/android/exoplayer2/LoadControl;->onPrepared()V
if-eqz p2, :cond_25
.line 388
new-instance v2, Lcom/google/android/exoplayer2/PlaybackInfo;
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
const-wide v8, -0x7fffffffffffffffL # -4.9E-324
move-object v4, v2
invoke-direct/range {v4 .. v9}, Lcom/google/android/exoplayer2/PlaybackInfo;-><init>(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;IJ)V
iput-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
goto :goto_3d
.line 391
:cond_25
new-instance v2, Lcom/google/android/exoplayer2/PlaybackInfo;
const/4 v11, 0x0
const/4 v12, 0x0
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v13, v4, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v14, v4, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v4, v4, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
move-object v10, v2
move-wide/from16 v16, v4
invoke-direct/range {v10 .. v17}, Lcom/google/android/exoplayer2/PlaybackInfo;-><init>(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)V
iput-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 394
:goto_3d
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 395
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->player:Lcom/google/android/exoplayer2/ExoPlayer;
invoke-interface {v1, v2, v3, v0}, Lcom/google/android/exoplayer2/source/MediaSource;->prepareSource(Lcom/google/android/exoplayer2/ExoPlayer;ZLcom/google/android/exoplayer2/source/MediaSource$Listener;)V
const/4 v1, 0x2
.line 396
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 397
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {v2, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method private releaseInternal()V
.registers 3
const/4 v0, 0x1
.line 796
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
.line 797
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 798
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 799
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->internalPlaybackThread:Landroid/os/HandlerThread;
invoke-virtual {v1}, Landroid/os/HandlerThread;->quit()Z
.line 800
monitor-enter p0
.line 801
:try_start_12
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
.line 802
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 803
monitor-exit p0
return-void
:catchall_19
move-exception v0
monitor-exit p0
:try_end_1b
.catchall {:try_start_12 .. :try_end_1b} :catchall_19
throw v0
.end method
.method private releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.registers 2
:goto_0
if-eqz p1, :cond_8
.line 1445
invoke-virtual {p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 1446
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 rendererWaitingForNextStream(Lcom/google/android/exoplayer2/Renderer;)Z
.registers 3
.line 1525
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_16
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_16
.line 1526
invoke-interface {p1}, Lcom/google/android/exoplayer2/Renderer;->hasReadStreamToEnd()Z
move-result p1
if-eqz p1, :cond_16
const/4 p1, 0x1
return p1
:cond_16
const/4 p1, 0x0
return p1
.end method
.method private reselectTracksInternal()V
.registers 18
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
move-object/from16 v0, p0
.line 869
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v1, :cond_7
return-void
:cond_7
const/4 v2, 0x1
const/4 v3, 0x1
:goto_9
if-eqz v1, :cond_fd
.line 877
iget-boolean v4, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-nez v4, :cond_11
goto/16 :goto_fd
.line 881
:cond_11
invoke-virtual {v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->selectTracks()Z
move-result v4
const/4 v5, 0x0
if-nez v4, :cond_20
.line 885
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne v1, v4, :cond_1d
const/4 v3, 0x0
.line 889
:cond_1d
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_9
:cond_20
const/4 v4, 0x2
const/4 v6, 0x0
const/4 v7, 0x4
if-eqz v3, :cond_c1
.line 894
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eq v3, v8, :cond_2d
const/4 v3, 0x1
goto :goto_2e
:cond_2d
const/4 v3, 0x0
.line 895
:goto_2e
iget-object v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v8, v8, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-direct {v0, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 896
iget-object v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v6, v8, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 897
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 898
iput-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 900
iget-object v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v8, v8
new-array v8, v8, [Z
.line 901
iget-object v9, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v9, v9, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
invoke-virtual {v6, v9, v10, v3, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->updatePeriodTrackSelection(JZ[Z)J
move-result-wide v9
.line 903
iget v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-eq v3, v7, :cond_75
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v11, v3, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
cmp-long v3, v9, v11
if-eqz v3, :cond_75
.line 904
iget-object v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v12, v11, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v13, v3, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
move-wide v15, v13
move-wide v13, v9
invoke-virtual/range {v11 .. v16}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v3
iput-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 906
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v11, 0x3
invoke-virtual {v6, v7, v11, v5, v3}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v3
.line 907
invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
.line 908
invoke-direct {v0, v9, v10}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 912
:cond_75
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v3, v3
new-array v3, v3, [Z
const/4 v6, 0x0
const/4 v9, 0x0
.line 913
:goto_7c
iget-object v10, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v11, v10
if-ge v6, v11, :cond_b2
.line 914
aget-object v10, v10, v6
.line 915
invoke-interface {v10}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result v11
if-eqz v11, :cond_8b
const/4 v11, 0x1
goto :goto_8c
:cond_8b
const/4 v11, 0x0
:goto_8c
aput-boolean v11, v3, v6
.line 916
iget-object v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v11, v11, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v11, v11, v6
if-eqz v11, :cond_98
add-int/lit8 v9, v9, 0x1
.line 920
:cond_98
aget-boolean v12, v3, v6
if-eqz v12, :cond_af
.line 921
invoke-interface {v10}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v12
if-eq v11, v12, :cond_a6
.line 923
invoke-direct {v0, v10}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->disableRenderer(Lcom/google/android/exoplayer2/Renderer;)V
goto :goto_af
.line 924
:cond_a6
aget-boolean v11, v8, v6
if-eqz v11, :cond_af
.line 926
iget-wide v11, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
invoke-interface {v10, v11, v12}, Lcom/google/android/exoplayer2/Renderer;->resetPosition(J)V
:cond_af
:goto_af
add-int/lit8 v6, v6, 0x1
goto :goto_7c
.line 930
:cond_b2
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
invoke-virtual {v2, v4, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v1
.line 931
invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
.line 932
invoke-direct {v0, v3, v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enableRenderers([ZI)V
goto :goto_ee
.line 935
:cond_c1
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 936
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_c5
if-eqz v1, :cond_cd
.line 938
invoke-virtual {v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 939
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_c5
.line 941
:cond_cd
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v6, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 942
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-eqz v1, :cond_ee
.line 943
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v1, v1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->startPositionUs:J
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v8, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 944
invoke-virtual {v3, v8, v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->toPeriodTime(J)J
move-result-wide v8
.line 943
invoke-static {v1, v2, v8, v9}, Ljava/lang/Math;->max(JJ)J
move-result-wide v1
.line 945
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {v3, v1, v2, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->updatePeriodTrackSelection(JZ)J
.line 948
:cond_ee
:goto_ee
iget v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-eq v1, v7, :cond_fd
.line 949
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
.line 950
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
.line 951
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {v1, v4}, Landroid/os/Handler;->sendEmptyMessage(I)Z
:cond_fd
:goto_fd
return-void
.end method
.method private resetInternal(Z)V
.registers 9
.line 807
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 808
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 809
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-wide/32 v1, 0x3938700
.line 810
iput-wide v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 811
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v2, v1
const/4 v3, 0x0
:goto_17
if-ge v3, v2, :cond_2c
aget-object v4, v1, v3
.line 813
:try_start_1b
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->disableRenderer(Lcom/google/android/exoplayer2/Renderer;)V
:try_end_1e
.catch Lcom/google/android/exoplayer2/ExoPlaybackException; {:try_start_1b .. :try_end_1e} :catch_21
.catch Ljava/lang/RuntimeException; {:try_start_1b .. :try_end_1e} :catch_1f
goto :goto_29
:catch_1f
move-exception v4
goto :goto_22
:catch_21
move-exception v4
:goto_22
const-string v5, "ExoPlayerImplInternal"
const-string v6, "Stop failed."
.line 816
invoke-static {v5, v6, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_29
add-int/lit8 v3, v3, 0x1
goto :goto_17
:cond_2c
new-array v1, v0, [Lcom/google/android/exoplayer2/Renderer;
.line 819
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.line 820
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v1, :cond_35
goto :goto_37
:cond_35
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_37
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
const/4 v1, 0x0
.line 822
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 823
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 824
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 825
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
if-eqz p1, :cond_5c
.line 827
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
if-eqz p1, :cond_4f
.line 828
invoke-interface {p1}, Lcom/google/android/exoplayer2/source/MediaSource;->releaseSource()V
.line 829
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 831
:cond_4f
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
invoke-virtual {p1, v1}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->setTimeline(Lcom/google/android/exoplayer2/Timeline;)V
.line 832
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual {p1, v1, v1}, Lcom/google/android/exoplayer2/PlaybackInfo;->copyWithTimeline(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
:cond_5c
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 771
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 773
: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 774
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 775
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 776
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 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;",
")",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 1218
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 1219
iget-object v1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 1220
invoke-virtual {v1}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v2
if-eqz v2, :cond_d
move-object v1, v0
.line 1228
:cond_d
:try_start_d
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget v6, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowIndex:I
iget-wide v7, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowPositionUs:J
move-object v3, v1
invoke-virtual/range {v3 .. v8}, Lcom/google/android/exoplayer2/Timeline;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline$Window;Lcom/google/android/exoplayer2/Timeline$Period;IJ)Landroid/util/Pair;
move-result-object p1
:try_end_1a
.catch Ljava/lang/IndexOutOfBoundsException; {:try_start_d .. :try_end_1a} :catch_62
if-ne v0, v1, :cond_1d
return-object p1
.line 1240
:cond_1d
iget-object v2, p1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v2, Ljava/lang/Integer;
.line 1241
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 {v1, 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 1240
invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_40
.line 1244
invoke-static {v2}, 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 1247
:cond_40
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
invoke-direct {p0, p1, v1, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSubsequentPeriod(ILcom/google/android/exoplayer2/Timeline;Lcom/google/android/exoplayer2/Timeline;)I
move-result p1
if-eq p1, v3, :cond_60
.line 1250
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 v1, -0x7fffffffffffffffL # -4.9E-324
invoke-direct {p0, v0, p1, v1, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
move-result-object p1
return-object p1
:cond_60
const/4 p1, 0x0
return-object p1
.line 1232
:catch_62
new-instance v1, Lcom/google/android/exoplayer2/IllegalSeekPositionException;
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 {v1, v0, v2, v3, v4}, Lcom/google/android/exoplayer2/IllegalSeekPositionException;-><init>(Lcom/google/android/exoplayer2/Timeline;IJ)V
throw v1
.end method
.method private resolveSubsequentPeriod(ILcom/google/android/exoplayer2/Timeline;Lcom/google/android/exoplayer2/Timeline;)I
.registers 13
.line 1194
invoke-virtual {p2}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v0
const/4 v1, -0x1
const/4 v2, 0x0
move v4, p1
const/4 p1, -0x1
:goto_8
if-ge v2, v0, :cond_2b
if-ne p1, v1, :cond_2b
.line 1196
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->repeatMode:I
iget-boolean v8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
move-object v3, p2
invoke-virtual/range {v3 .. v8}, Lcom/google/android/exoplayer2/Timeline;->getNextPeriodIndex(ILcom/google/android/exoplayer2/Timeline$Period;Lcom/google/android/exoplayer2/Timeline$Window;IZ)I
move-result v4
if-eq v4, v1, :cond_2b
.line 1202
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
const/4 v3, 0x1
.line 1203
invoke-virtual {p2, v4, p1, v3}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object p1
iget-object p1, p1, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
.line 1202
invoke-virtual {p3, p1}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result p1
add-int/lit8 v2, v2, 0x1
goto :goto_8
:cond_2b
return p1
.end method
.method private scheduleNextWork(JJ)V
.registers 7
.line 637
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 639
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 641
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.line 643
: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
return-void
.end method
.method private seekToInternal(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)V
.registers 19
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
move-object/from16 v1, p0
move-object/from16 v0, p1
.line 648
iget-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v2, v2, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
const/4 v3, 0x1
if-nez v2, :cond_13
.line 650
iget v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
add-int/2addr v2, v3
iput v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
.line 651
iput-object v0, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
return-void
.line 655
:cond_13
invoke-direct/range {p0 .. p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSeekPosition(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)Landroid/util/Pair;
move-result-object v4
const/4 v5, 0x3
const/4 v6, 0x0
if-nez v4, :cond_5d
.line 657
invoke-virtual {v2}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v0
if-eqz v0, :cond_23
const/4 v0, 0x0
goto :goto_31
:cond_23
iget-boolean v0, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
.line 658
invoke-virtual {v2, v0}, Lcom/google/android/exoplayer2/Timeline;->getFirstWindowIndex(Z)I
move-result v0
iget-object v4, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 657
invoke-virtual {v2, v0, v4}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v0
iget v0, v0, Lcom/google/android/exoplayer2/Timeline$Window;->firstPeriodIndex:I
.line 663
:goto_31
iget-object v7, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const-wide v9, -0x7fffffffffffffffL # -4.9E-324
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
move v8, v0
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(IJJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v2
iput-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const/4 v2, 0x4
.line 664
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 665
iget-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
iget-object v7, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
const-wide/16 v9, 0x0
.line 666
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(IJJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v0
.line 665
invoke-virtual {v2, v5, v3, v6, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 666
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
.line 668
invoke-direct {v1, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
return-void
.line 672
:cond_5d
iget-wide v7, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowPositionUs:J
const-wide v9, -0x7fffffffffffffffL # -4.9E-324
cmp-long v0, v7, v9
if-nez v0, :cond_6a
const/4 v0, 0x1
goto :goto_6b
:cond_6a
const/4 v0, 0x0
.line 673
:goto_6b
iget-object v2, v4, 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 674
iget-object v4, v4, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v4, Ljava/lang/Long;
invoke-virtual {v4}, Ljava/lang/Long;->longValue()J
move-result-wide v11
.line 676
iget-object v4, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
.line 677
invoke-virtual {v4, v2, v11, v12}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->resolvePeriodPositionForAds(IJ)Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
move-result-object v8
.line 678
invoke-virtual {v8}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->isAd()Z
move-result v2
if-eqz v2, :cond_8b
const-wide/16 v9, 0x0
const/4 v2, 0x1
goto :goto_8d
:cond_8b
move v2, v0
move-wide v9, v11
.line 683
:goto_8d
:try_start_8d
iget-object v0, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
invoke-virtual {v8, v0}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_b6
const-wide/16 v13, 0x3e8
div-long v15, v9, v13
iget-object v0, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v3, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
div-long/2addr v3, v13
:try_end_a0
.catchall {:try_start_8d .. :try_end_a0} :catchall_d6
cmp-long v0, v15, v3
if-nez v0, :cond_b6
.line 692
iget-object v7, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v0
iput-object v0, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 693
iget-object v3, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v3, v5, v2, v6, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 694
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
return-void
.line 688
:cond_b6
:try_start_b6
invoke-direct {v1, v8, v9, v10}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)J
move-result-wide v3
:try_end_ba
.catchall {:try_start_b6 .. :try_end_ba} :catchall_d6
cmp-long v0, v9, v3
if-eqz v0, :cond_c0
const/4 v7, 0x1
goto :goto_c1
:cond_c0
const/4 v7, 0x0
:goto_c1
or-int v0, v2, v7
.line 692
iget-object v7, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
move-wide v9, v3
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v2
iput-object v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 693
iget-object v3, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v3, v5, v0, v6, v2}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 694
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
return-void
:catchall_d6
move-exception v0
.line 692
iget-object v7, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v3
iput-object v3, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 693
iget-object v4, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v4, v5, v2, v6, v3}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v2
.line 694
invoke-virtual {v2}, Landroid/os/Message;->sendToTarget()V
throw v0
.end method
.method private seekToPeriodPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)J
.registers 11
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 700
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
const/4 v0, 0x0
.line 701
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
const/4 v1, 0x2
.line 702
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 705
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 707
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz p1, :cond_16
.line 708
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
if-nez v4, :cond_25
.line 715
invoke-direct {p0, p1, p2, p3, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shouldKeepPeriodHolder(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JLcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)Z
move-result v5
if-eqz v5, :cond_25
move-object v4, v2
goto :goto_28
.line 718
:cond_25
invoke-virtual {v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 720
:goto_28
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_19
.line 726
: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_47
.line 728
: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 729
invoke-direct {p0, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->disableRenderer(Lcom/google/android/exoplayer2/Renderer;)V
add-int/lit8 v5, v5, 0x1
goto :goto_37
:cond_41
new-array p1, v0, [Lcom/google/android/exoplayer2/Renderer;
.line 731
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.line 732
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:cond_47
if-eqz v4, :cond_68
.line 737
iput-object v3, v4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 738
iput-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 739
iput-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 740
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlayingPeriodHolder(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 741
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_61
.line 742
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 744
:cond_61
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 745
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
goto :goto_71
.line 747
:cond_68
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 748
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 749
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 750
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 753
:goto_71
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 838
: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 839
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 841
:cond_12
iget p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
const/4 v0, 0x3
const/4 v1, 0x2
if-eq p1, v0, :cond_1c
iget p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne p1, v1, :cond_21
.line 843
:cond_1c
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
:try_end_21
.catchall {:try_start_0 .. :try_end_21} :catchall_30
.line 846
:cond_21
monitor-enter p0
.line 847
:try_start_22
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 848
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 849
monitor-exit p0
return-void
:catchall_2d
move-exception p1
monitor-exit p0
:try_end_2f
.catchall {:try_start_22 .. :try_end_2f} :catchall_2d
throw p1
:catchall_30
move-exception p1
.line 846
monitor-enter p0
.line 847
:try_start_32
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 848
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 849
monitor-exit p0
:try_end_3c
.catchall {:try_start_32 .. :try_end_3c} :catchall_3d
throw p1
:catchall_3d
move-exception p1
:try_start_3e
monitor-exit p0
:try_end_3f
.catchall {:try_start_3e .. :try_end_3f} :catchall_3d
goto :goto_41
:goto_40
throw p1
:goto_41
goto :goto_40
.end method
.method private setIsLoading(Z)V
.registers 5
.line 377
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isLoading:Z
if-eq v0, p1, :cond_11
.line 378
iput-boolean p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isLoading:Z
.line 379
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 setPlayWhenReadyInternal(Z)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
const/4 v0, 0x0
.line 401
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 402
iput-boolean p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-nez p1, :cond_e
.line 404
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
.line 405
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
return-void
.line 407
: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 408
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->startRenderers()V
.line 409
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
:cond_1d
if-ne p1, v1, :cond_24
.line 411
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
return-void
.end method
.method private setPlaybackParametersInternal(Lcom/google/android/exoplayer2/PlaybackParameters;)V
.registers 4
.line 781
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
if-eqz v0, :cond_8
.line 782
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/util/MediaClock;->setPlaybackParameters(Lcom/google/android/exoplayer2/PlaybackParameters;)Lcom/google/android/exoplayer2/PlaybackParameters;
move-result-object p1
.line 784
:cond_8
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->setPlaybackParameters(Lcom/google/android/exoplayer2/PlaybackParameters;)Lcom/google/android/exoplayer2/PlaybackParameters;
.line 785
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackParameters:Lcom/google/android/exoplayer2/PlaybackParameters;
.line 786
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v1, 0x6
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 private setPlayingPeriodHolder(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 1451
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 1456
: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 1457
: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_4d
.line 1458
aget-object v4, v4, v2
.line 1459
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 1460
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;->renderersEnabled:[Z
aget-boolean v5, v5, v2
if-eqz v5, :cond_29
add-int/lit8 v3, v3, 0x1
.line 1463
:cond_29
aget-boolean v5, v0, v2
if-eqz v5, :cond_4a
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;->renderersEnabled:[Z
aget-boolean v5, v5, v2
if-eqz v5, :cond_47
.line 1464
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->isCurrentStreamFinal()Z
move-result v5
if-eqz v5, :cond_4a
.line 1465
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_4a
.line 1469
:cond_47
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->disableRenderer(Lcom/google/android/exoplayer2/Renderer;)V
:cond_4a
add-int/lit8 v2, v2, 0x1
goto :goto_d
.line 1473
:cond_4d
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1474
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v2, 0x2
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 1475
invoke-direct {p0, v0, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enableRenderers([ZI)V
return-void
.end method
.method private setRepeatModeInternal(I)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 418
iput p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->repeatMode:I
.line 419
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->setRepeatMode(I)V
.line 420
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->validateExistingPeriodHolders()V
return-void
.end method
.method private setShuffleModeEnabledInternal(Z)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 425
iput-boolean p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
.line 426
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->setShuffleModeEnabled(Z)V
.line 427
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->validateExistingPeriodHolders()V
return-void
.end method
.method private setState(I)V
.registers 4
.line 370
iget v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-eq v0, p1, :cond_10
.line 371
iput p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
.line 372
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v1, 0x0
invoke-virtual {v0, v1, p1, v1}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
:cond_10
return-void
.end method
.method private shouldKeepPeriodHolder(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JLcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)Z
.registers 7
.line 759
iget-object v0, p4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v0, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
invoke-virtual {p1, v0}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_36
iget-boolean p1, p4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-eqz p1, :cond_36
.line 760
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object p1, p1, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v0, p4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v0, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget v0, v0, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodIndex:I
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {p1, v0, v1}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
.line 761
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {p1, p2, p3}, Lcom/google/android/exoplayer2/Timeline$Period;->getAdGroupIndexAfterPositionUs(J)I
move-result p1
const/4 p2, -0x1
if-eq p1, p2, :cond_34
.line 762
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 763
invoke-virtual {p2, p1}, Lcom/google/android/exoplayer2/Timeline$Period;->getAdGroupTimeUs(I)J
move-result-wide p1
iget-object p3, p4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide p3, p3, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->endPositionUs:J
cmp-long v0, p1, p3
if-nez v0, :cond_36
:cond_34
const/4 p1, 0x1
return p1
:cond_36
const/4 p1, 0x0
return p1
.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 487
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 488
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 489
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 490
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 790
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
.line 791
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 792
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 495
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 496
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 497
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 updatePeriodInfo(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;I)Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.registers 5
.line 1140
:goto_0
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
iget-object v1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
.line 1141
invoke-virtual {v0, v1, p2}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->getUpdatedMediaPeriodInfo(Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;I)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v0
iput-object v0, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
.line 1142
iget-object v0, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->isLastInTimelinePeriod:Z
if-nez v0, :cond_18
iget-object v0, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_15
goto :goto_18
.line 1145
:cond_15
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_0
:cond_18
:goto_18
return-object p1
.end method
.method private updatePeriods()V
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;,
Ljava/io/IOException;
}
.end annotation
.line 1267
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
if-nez v0, :cond_c
.line 1269
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 1274
:cond_c
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeUpdateLoadingPeriod()V
.line 1275
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const/4 v1, 0x0
if-eqz v0, :cond_27
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isFullyBuffered()Z
move-result v0
if-eqz v0, :cond_1b
goto :goto_27
.line 1277
:cond_1b
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_2a
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isLoading:Z
if-nez v0, :cond_2a
.line 1278
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
goto :goto_2a
.line 1276
:cond_27
:goto_27
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
.line 1281
:cond_2a
:goto_2a
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_2f
return-void
.line 1287
:cond_2f
:goto_2f
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-eqz v0, :cond_79
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_79
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_79
.line 1291
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 1292
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 1293
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
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;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v3, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
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;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v4, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->startPositionUs:J
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;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v6, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->contentPositionUs:J
invoke-virtual/range {v2 .. v7}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 1295
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
.line 1296
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v2, 0x4
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
invoke-virtual {v0, v2, v1, v1, v3}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 1297
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
goto :goto_2f
.line 1300
:cond_79
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;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->isFinal:Z
if-eqz v0, :cond_a3
.line 1301
:goto_81
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v2, v0
if-ge v1, v2, :cond_a2
.line 1302
aget-object v0, v0, v1
.line 1303
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_9f
.line 1306
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v3
if-ne v3, v2, :cond_9f
.line 1307
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->hasReadStreamToEnd()Z
move-result v2
if-eqz v2, :cond_9f
.line 1308
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->setCurrentStreamFinal()V
:cond_9f
add-int/lit8 v1, v1, 0x1
goto :goto_81
:cond_a2
return-void
.line 1315
:cond_a3
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_14f
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-nez v0, :cond_b3
goto/16 :goto_14f
:cond_b3
const/4 v0, 0x0
.line 1320
:goto_b4
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v3, v2
if-ge v0, v3, :cond_d4
.line 1321
aget-object v2, v2, v0
.line 1322
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 1323
invoke-interface {v2}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v4
if-ne v4, v3, :cond_d3
if-eqz v3, :cond_d0
.line 1324
invoke-interface {v2}, Lcom/google/android/exoplayer2/Renderer;->hasReadStreamToEnd()Z
move-result v2
if-nez v2, :cond_d0
goto :goto_d3
:cond_d0
add-int/lit8 v0, v0, 0x1
goto :goto_b4
:cond_d3
:goto_d3
return-void
.line 1330
:cond_d4
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 1331
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 1332
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
.line 1334
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 1335
invoke-interface {v3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->readDiscontinuity()J
move-result-wide v3
const-wide v5, -0x7fffffffffffffffL # -4.9E-324
const/4 v7, 0x1
cmp-long v8, v3, v5
if-eqz v8, :cond_f4
const/4 v3, 0x1
goto :goto_f5
:cond_f4
const/4 v3, 0x0
:goto_f5
const/4 v4, 0x0
.line 1336
:goto_f6
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v6, v5
if-ge v4, v6, :cond_14f
.line 1337
aget-object v5, v5, v4
.line 1338
iget-object v6, v0, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->renderersEnabled:[Z
aget-boolean v6, v6, v4
if-eqz v6, :cond_14c
if-nez v3, :cond_149
.line 1345
invoke-interface {v5}, Lcom/google/android/exoplayer2/Renderer;->isCurrentStreamFinal()Z
move-result v6
if-nez v6, :cond_14c
.line 1346
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 1347
iget-object v8, v2, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->renderersEnabled:[Z
aget-boolean v8, v8, v4
.line 1348
iget-object v9, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
aget-object v9, v9, v4
invoke-interface {v9}, Lcom/google/android/exoplayer2/RendererCapabilities;->getTrackType()I
move-result v9
const/4 v10, 0x5
if-ne v9, v10, :cond_122
const/4 v9, 0x1
goto :goto_123
:cond_122
const/4 v9, 0x0
.line 1349
:goto_123
iget-object v10, v0, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->rendererConfigurations:[Lcom/google/android/exoplayer2/RendererConfiguration;
aget-object v10, v10, v4
.line 1350
iget-object v11, v2, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->rendererConfigurations:[Lcom/google/android/exoplayer2/RendererConfiguration;
aget-object v11, v11, v4
if-eqz v8, :cond_149
.line 1351
invoke-virtual {v11, v10}, Lcom/google/android/exoplayer2/RendererConfiguration;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_149
if-nez v9, :cond_149
.line 1358
invoke-static {v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getFormats(Lcom/google/android/exoplayer2/trackselection/TrackSelection;)[Lcom/google/android/exoplayer2/Format;
move-result-object v6
.line 1359
iget-object v8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v8, v8, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v8, v8, v4
iget-object v9, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1360
invoke-virtual {v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v9
.line 1359
invoke-interface {v5, v6, v8, v9, v10}, Lcom/google/android/exoplayer2/Renderer;->replaceStream([Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/source/SampleStream;J)V
goto :goto_14c
.line 1367
:cond_149
invoke-interface {v5}, Lcom/google/android/exoplayer2/Renderer;->setCurrentStreamFinal()V
:cond_14c
:goto_14c
add-int/lit8 v4, v4, 0x1
goto :goto_f6
:cond_14f
:goto_14f
return-void
.end method
.method private updatePlaybackPositions()V
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 502
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_5
return-void
.line 507
: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 v7
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long v2, v7, v0
if-eqz v2, :cond_33
.line 509
invoke-direct {p0, v7, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 510
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v2, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->periodId:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v5, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
move-wide v3, v7
invoke-virtual/range {v1 .. v6}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 512
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v2, 0x4
const/4 v3, 0x3
const/4 v4, 0x0
invoke-virtual {v1, v2, v3, v4, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 513
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
goto :goto_6c
.line 519
:cond_33
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
if-eqz v0, :cond_5c
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->isEnded()Z
move-result v0
if-nez v0, :cond_5c
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 520
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->isReady()Z
move-result v0
if-nez v0, :cond_4e
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 521
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererWaitingForNextStream(Lcom/google/android/exoplayer2/Renderer;)Z
move-result v0
if-eqz v0, :cond_4e
goto :goto_5c
.line 524
:cond_4e
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 525
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_64
.line 522
:cond_5c
:goto_5c
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 527
:goto_64
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 v7
.line 529
:goto_6c
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iput-wide v7, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
.line 530
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 533
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_83
move-wide v3, v1
goto :goto_8b
:cond_83
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 534
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getBufferedPositionUs()J
move-result-wide v3
.line 535
:goto_8b
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
cmp-long v5, v3, v1
if-nez v5, :cond_97
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-wide v3, v1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->durationUs:J
:cond_97
iput-wide v3, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->bufferedPositionUs:J
return-void
.end method
.method private validateExistingPeriodHolders()V
.registers 14
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 432
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_5
goto :goto_7
:cond_5
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_7
if-nez v0, :cond_a
return-void
.line 438
:cond_a
:goto_a
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-object v2, v1, Lcom/google/android/exoplayer2/PlaybackInfo;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v1, v1, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget v3, v1, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodIndex:I
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->repeatMode:I
iget-boolean v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->shuffleModeEnabled:Z
invoke-virtual/range {v2 .. v7}, Lcom/google/android/exoplayer2/Timeline;->getNextPeriodIndex(ILcom/google/android/exoplayer2/Timeline$Period;Lcom/google/android/exoplayer2/Timeline$Window;IZ)I
move-result v1
.line 441
:goto_20
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v2, :cond_2d
iget-object v2, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-boolean v2, v2, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->isLastInTimelinePeriod:Z
if-nez v2, :cond_2d
.line 443
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_20
:cond_2d
const/4 v2, -0x1
if-eq v1, v2, :cond_41
.line 445
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v3, :cond_41
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v3, v3, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
iget v3, v3, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodIndex:I
if-ne v3, v1, :cond_41
.line 449
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_a
.line 453
:cond_41
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
.line 454
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v3, :cond_4c
iget v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
goto :goto_4d
:cond_4c
const/4 v3, -0x1
.line 456
:goto_4d
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v4, :cond_59
.line 457
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
const/4 v4, 0x0
.line 458
iput-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 462
:cond_59
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaPeriodInfoSequence:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
.line 463
invoke-virtual {v4, v5}, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence;->getUpdatedMediaPeriodInfo(Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;)Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
move-result-object v4
iput-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
.line 466
iget v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
const/4 v5, 0x1
const/4 v6, 0x0
if-gt v1, v4, :cond_6b
const/4 v1, 0x1
goto :goto_6c
:cond_6b
const/4 v1, 0x0
:goto_6c
if-nez v1, :cond_70
.line 468
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:cond_70
if-eq v3, v2, :cond_77
.line 470
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
if-gt v3, v0, :cond_77
goto :goto_78
:cond_77
const/4 v5, 0x0
:goto_78
if-nez v5, :cond_a7
.line 472
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_a7
.line 475
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->info:Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;
iget-object v8, v0, Lcom/google/android/exoplayer2/MediaPeriodInfoSequence$MediaPeriodInfo;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.line 476
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
invoke-direct {p0, v8, v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)J
move-result-wide v9
.line 477
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v0, v0, Lcom/google/android/exoplayer2/PlaybackInfo;->positionUs:J
cmp-long v2, v9, v0
if-eqz v2, :cond_a7
.line 478
iget-object v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
iget-wide v11, v7, Lcom/google/android/exoplayer2/PlaybackInfo;->contentPositionUs:J
invoke-virtual/range {v7 .. v12}, Lcom/google/android/exoplayer2/PlaybackInfo;->fromNewPosition(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;JJ)Lcom/google/android/exoplayer2/PlaybackInfo;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/PlaybackInfo;
.line 480
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v2, 0x4
const/4 v3, 0x3
invoke-virtual {v1, v2, v3, v6, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 481
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
:cond_a7
return-void
.end method
# virtual methods
.method public final varargs declared-synchronized blockingSendMessages([Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;)V
.registers 5
monitor-enter p0
.line 212
: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 213
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_35
.line 214
monitor-exit p0
return-void
.line 216
: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 217
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v2, 0xb
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
const/4 p1, 0x0
.line 219
:goto_20
iget v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesProcessed:I
:try_end_22
.catchall {:try_start_e .. :try_end_22} :catchall_35
if-gt v1, v0, :cond_2a
.line 221
:try_start_24
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_27
.catch Ljava/lang/InterruptedException; {:try_start_24 .. :try_end_27} :catch_28
.catchall {:try_start_24 .. :try_end_27} :catchall_35
goto :goto_20
:catch_28
const/4 p1, 0x1
goto :goto_20
:cond_2a
if-eqz p1, :cond_33
.line 228
:try_start_2c
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Thread;->interrupt()V
:try_end_33
.catchall {:try_start_2c .. :try_end_33} :catchall_35
.line 230
:cond_33
monitor-exit p0
return-void
:catchall_35
move-exception p1
monitor-exit p0
goto :goto_39
:goto_38
throw p1
:goto_39
goto :goto_38
.end method
.method public final getPlaybackLooper()Landroid/os/Looper;
.registers 2
.line 252
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->internalPlaybackThread:Landroid/os/HandlerThread;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
return-object v0
.end method
.method public final handleMessage(Landroid/os/Message;)Z
.registers 7
const-string v0, "ExoPlayerImplInternal"
const/4 v1, 0x7
const/4 v2, 0x1
.line 288
:try_start_4
iget v3, p1, Landroid/os/Message;->what:I
const/4 v4, 0x0
packed-switch v3, :pswitch_data_b4
return v4
.line 302
:pswitch_b
iget p1, p1, Landroid/os/Message;->arg1:I
if-eqz p1, :cond_10
const/4 v4, 0x1
:cond_10
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setShuffleModeEnabledInternal(Z)V
return v2
.line 298
:pswitch_14
iget p1, p1, Landroid/os/Message;->arg1:I
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setRepeatModeInternal(I)V
return v2
.line 342
:pswitch_1a
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 338
:pswitch_24
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->reselectTracksInternal()V
return v2
.line 334
:pswitch_28
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 326
:pswitch_30
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 330
:pswitch_38
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshed(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;)V
return v2
.line 322
:pswitch_40
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releaseInternal()V
return v2
.line 318
:pswitch_44
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
.line 314
:pswitch_48
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/PlaybackParameters;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlaybackParametersInternal(Lcom/google/android/exoplayer2/PlaybackParameters;)V
return v2
.line 310
:pswitch_50
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 306
:pswitch_58
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->doSomeWork()V
return v2
.line 294
:pswitch_5c
iget p1, p1, Landroid/os/Message;->arg1:I
if-eqz p1, :cond_61
const/4 v4, 0x1
:cond_61
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlayWhenReadyInternal(Z)V
return v2
.line 290
:pswitch_65
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_6e
const/4 v4, 0x1
:cond_6e
invoke-direct {p0, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->prepareInternal(Lcom/google/android/exoplayer2/source/MediaSource;Z)V
:try_end_71
.catch Lcom/google/android/exoplayer2/ExoPlaybackException; {:try_start_4 .. :try_end_71} :catch_a0
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_71} :catch_89
.catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_71} :catch_72
return v2
:catch_72
move-exception p1
const-string v3, "Internal runtime error."
.line 359
invoke-static {v0, v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 360
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 361
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 362
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
:catch_89
move-exception p1
const-string v3, "Source error."
.line 354
invoke-static {v0, v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 355
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 356
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
:catch_a0
move-exception p1
const-string v3, "Renderer 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-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 351
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
nop
:pswitch_data_b4
.packed-switch 0x0
:pswitch_65
:pswitch_5c
:pswitch_58
:pswitch_50
:pswitch_48
:pswitch_44
:pswitch_40
:pswitch_38
:pswitch_30
:pswitch_28
:pswitch_24
:pswitch_1a
:pswitch_14
:pswitch_b
.end packed-switch
.end method
.method public final onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 4
.line 272
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0x9
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 final bridge synthetic onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.registers 2
.line 48
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 final onPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 4
.line 267
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 final onSourceInfoRefreshed(Lcom/google/android/exoplayer2/source/MediaSource;Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
.registers 6
.line 259
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;
invoke-direct {v1, p1, p2, p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaSourceRefreshInfo;-><init>(Lcom/google/android/exoplayer2/source/MediaSource;Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
const/4 p1, 0x7
invoke-virtual {v0, p1, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 260
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public final onTrackSelectionsInvalidated()V
.registers 3
.line 279
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0xa
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method public final prepare(Lcom/google/android/exoplayer2/source/MediaSource;Z)V
.registers 5
.line 173
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 174
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public final declared-synchronized release()V
.registers 3
monitor-enter p0
.line 233
: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_23
if-eqz v0, :cond_7
.line 234
monitor-exit p0
return-void
.line 236
:cond_7
:try_start_7
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x6
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
const/4 v0, 0x0
.line 238
:goto_e
iget-boolean v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
:try_end_10
.catchall {:try_start_7 .. :try_end_10} :catchall_23
if-nez v1, :cond_18
.line 240
:try_start_12
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_15
.catch Ljava/lang/InterruptedException; {:try_start_12 .. :try_end_15} :catch_16
.catchall {:try_start_12 .. :try_end_15} :catchall_23
goto :goto_e
:catch_16
const/4 v0, 0x1
goto :goto_e
:cond_18
if-eqz v0, :cond_21
.line 247
:try_start_1a
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
:try_end_21
.catchall {:try_start_1a .. :try_end_21} :catchall_23
.line 249
:cond_21
monitor-exit p0
return-void
:catchall_23
move-exception v0
monitor-exit p0
goto :goto_27
:goto_26
throw v0
:goto_27
goto :goto_26
.end method
.method public final seekTo(Lcom/google/android/exoplayer2/Timeline;IJ)V
.registers 7
.line 190
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 191
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public final varargs sendMessages([Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;)V
.registers 4
.line 203
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 204
invoke-static {p1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
.line 207
: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 208
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0xb
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 final setPlayWhenReady(Z)V
.registers 5
.line 178
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 final setPlaybackParameters(Lcom/google/android/exoplayer2/PlaybackParameters;)V
.registers 4
.line 195
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x4
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 final setRepeatMode(I)V
.registers 5
.line 182
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0xc
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
return-void
.end method
.method public final setShuffleModeEnabled(Z)V
.registers 5
.line 186
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x0
const/16 v2, 0xd
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 final stop()V
.registers 3
.line 199
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
return-void
.end method