DeferredMediaPeriod.smali
.class public final Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;
.super Ljava/lang/Object;
.source "DeferredMediaPeriod.java"
# interfaces
.implements Lcom/google/android/exoplayer2/source/MediaPeriod;
.implements Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;
}
.end annotation
# instance fields
.field private final allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
.field private callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.field public final id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.field private listener:Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;
.field private mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
.field public final mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.field private notifiedPrepareError:Z
.field private preparePositionOverrideUs:J
.field private preparePositionUs:J
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/MediaSource;Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/upstream/Allocator;J)V
.registers 8
.param p1, "mediaSource" # Lcom/google/android/exoplayer2/source/MediaSource;
.param p2, "id" # Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.param p3, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p4, "preparePositionUs" # J
.line 66
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 67
iput-object p2, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.line 68
iput-object p3, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
.line 69
iput-object p1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 70
iput-wide p4, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionUs:J
.line 71
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
iput-wide v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionOverrideUs:J
.line 72
return-void
.end method
.method private getPreparePositionWithOverride(J)J
.registers 8
.param p1, "preparePositionUs" # J
.line 220
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionOverrideUs:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-eqz v4, :cond_c
goto :goto_d
:cond_c
move-wide v0, p1
:goto_d
return-wide v0
.end method
# virtual methods
.method public continueLoading(J)Z
.registers 4
.param p1, "positionUs" # J
.line 204
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
if-eqz v0, :cond_c
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/source/MediaPeriod;->continueLoading(J)Z
move-result v0
if-eqz v0, :cond_c
const/4 v0, 0x1
goto :goto_d
:cond_c
const/4 v0, 0x0
:goto_d
return v0
.end method
.method public createPeriod(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;)V
.registers 6
.param p1, "id" # Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.line 108
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionUs:J
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->getPreparePositionWithOverride(J)J
move-result-wide v0
.line 109
.local v0, "preparePositionUs":J
iget-object v2, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
iget-object v3, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
invoke-interface {v2, p1, v3, v0, v1}, Lcom/google/android/exoplayer2/source/MediaSource;->createPeriod(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/upstream/Allocator;J)Lcom/google/android/exoplayer2/source/MediaPeriod;
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 110
iget-object v3, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
if-eqz v3, :cond_17
.line 111
invoke-interface {v2, p0, v0, v1}, Lcom/google/android/exoplayer2/source/MediaPeriod;->prepare(Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;J)V
.line 113
:cond_17
return-void
.end method
.method public discardBuffer(JZ)V
.registers 5
.param p1, "positionUs" # J
.param p3, "toKeyframe" # Z
.line 169
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->discardBuffer(JZ)V
.line 170
return-void
.end method
.method public getAdjustedSeekPositionUs(JLcom/google/android/exoplayer2/SeekParameters;)J
.registers 6
.param p1, "positionUs" # J
.param p3, "seekParameters" # Lcom/google/android/exoplayer2/SeekParameters;
.line 189
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getAdjustedSeekPositionUs(JLcom/google/android/exoplayer2/SeekParameters;)J
move-result-wide v0
return-wide v0
.end method
.method public getBufferedPositionUs()J
.registers 3
.line 179
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getBufferedPositionUs()J
move-result-wide v0
return-wide v0
.end method
.method public getNextLoadPositionUs()J
.registers 3
.line 194
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getNextLoadPositionUs()J
move-result-wide v0
return-wide v0
.end method
.method public getPreparePositionUs()J
.registers 3
.line 87
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionUs:J
return-wide v0
.end method
.method public synthetic getStreamKeys(Lcom/google/android/exoplayer2/trackselection/TrackSelection;)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/trackselection/TrackSelection;",
")",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/offline/StreamKey;",
">;"
}
.end annotation
invoke-static {p0, p1}, Lcom/google/android/exoplayer2/source/MediaPeriod$-CC;->$default$getStreamKeys(Lcom/google/android/exoplayer2/source/MediaPeriod;Lcom/google/android/exoplayer2/trackselection/TrackSelection;)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public getTrackGroups()Lcom/google/android/exoplayer2/source/TrackGroupArray;
.registers 2
.line 153
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getTrackGroups()Lcom/google/android/exoplayer2/source/TrackGroupArray;
move-result-object v0
return-object v0
.end method
.method public maybeThrowPrepareError()V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 135
:try_start_0
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
if-eqz v0, :cond_a
.line 136
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->maybeThrowPrepareError()V
goto :goto_f
.line 138
:cond_a
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaSource;->maybeThrowSourceInfoRefreshError()V
:try_end_f
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_f} :catch_10
.line 148
:goto_f
goto :goto_21
.line 140
:catch_10
move-exception v0
.line 141
.local v0, "e":Ljava/io/IOException;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->listener:Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;
if-eqz v1, :cond_22
.line 144
iget-boolean v2, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->notifiedPrepareError:Z
if-nez v2, :cond_21
.line 145
const/4 v2, 0x1
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->notifiedPrepareError:Z
.line 146
iget-object v2, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->id:Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
invoke-interface {v1, v2, v0}, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;->onPrepareError(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Ljava/io/IOException;)V
.line 149
.end local v0 # "e":Ljava/io/IOException;
:cond_21
:goto_21
return-void
.line 142
.restart local v0 # "e":Ljava/io/IOException;
:cond_22
throw v0
.end method
.method public onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 3
.param p1, "source" # Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 209
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v0, p0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 210
return-void
.end method
.method public bridge synthetic onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.registers 2
.line 32
check-cast p1, Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
return-void
.end method
.method public onPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 3
.param p1, "mediaPeriod" # Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 216
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v0, p0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.line 217
return-void
.end method
.method public overridePreparePositionUs(J)V
.registers 3
.param p1, "preparePositionUs" # J
.line 97
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionOverrideUs:J
.line 98
return-void
.end method
.method public prepare(Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;J)V
.registers 7
.param p1, "callback" # Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.param p2, "preparePositionUs" # J
.line 126
iput-object p1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.line 127
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
if-eqz v0, :cond_f
.line 128
iget-wide v1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionUs:J
invoke-direct {p0, v1, v2}, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->getPreparePositionWithOverride(J)J
move-result-wide v1
invoke-interface {v0, p0, v1, v2}, Lcom/google/android/exoplayer2/source/MediaPeriod;->prepare(Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;J)V
.line 130
:cond_f
return-void
.end method
.method public readDiscontinuity()J
.registers 3
.line 174
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->readDiscontinuity()J
move-result-wide v0
return-wide v0
.end method
.method public reevaluateBuffer(J)V
.registers 4
.param p1, "positionUs" # J
.line 199
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/source/MediaPeriod;->reevaluateBuffer(J)V
.line 200
return-void
.end method
.method public releasePeriod()V
.registers 3
.line 119
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
if-eqz v0, :cond_9
.line 120
iget-object v1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v1, v0}, Lcom/google/android/exoplayer2/source/MediaSource;->releasePeriod(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.line 122
:cond_9
return-void
.end method
.method public seekToUs(J)J
.registers 5
.param p1, "positionUs" # J
.line 184
iget-object v0, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/source/MediaPeriod;->seekToUs(J)J
move-result-wide v0
return-wide v0
.end method
.method public selectTracks([Lcom/google/android/exoplayer2/trackselection/TrackSelection;[Z[Lcom/google/android/exoplayer2/source/SampleStream;[ZJ)J
.registers 19
.param p1, "selections" # [Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.param p2, "mayRetainStreamFlags" # [Z
.param p3, "streams" # [Lcom/google/android/exoplayer2/source/SampleStream;
.param p4, "streamResetFlags" # [Z
.param p5, "positionUs" # J
.line 159
move-object v0, p0
iget-wide v1, v0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionOverrideUs:J
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
cmp-long v5, v1, v3
if-eqz v5, :cond_17
iget-wide v1, v0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionUs:J
cmp-long v5, p5, v1
if-nez v5, :cond_17
.line 160
iget-wide v1, v0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionOverrideUs:J
.line 161
.end local p5 # "positionUs":J
.local v1, "positionUs":J
iput-wide v3, v0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->preparePositionOverrideUs:J
goto :goto_19
.line 163
.end local v1 # "positionUs":J
.restart local p5 # "positionUs":J
:cond_17
move-wide/from16 v1, p5
.end local p5 # "positionUs":J
.restart local v1 # "positionUs":J
:goto_19
iget-object v5, v0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
move-object v6, p1
move-object v7, p2
move-object v8, p3
move-object/from16 v9, p4
move-wide v10, v1
invoke-interface/range {v5 .. v11}, Lcom/google/android/exoplayer2/source/MediaPeriod;->selectTracks([Lcom/google/android/exoplayer2/trackselection/TrackSelection;[Z[Lcom/google/android/exoplayer2/source/SampleStream;[ZJ)J
move-result-wide v3
return-wide v3
.end method
.method public setPrepareErrorListener(Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;)V
.registers 2
.param p1, "listener" # Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;
.line 82
iput-object p1, p0, Lcom/google/android/exoplayer2/source/DeferredMediaPeriod;->listener:Lcom/google/android/exoplayer2/source/DeferredMediaPeriod$PrepareErrorListener;
.line 83
return-void
.end method