ChunkSampleStream.smali
.class public Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;
.super Ljava/lang/Object;
.source "ChunkSampleStream.java"
# interfaces
.implements Lcom/google/android/exoplayer2/source/SampleStream;
.implements Lcom/google/android/exoplayer2/source/SequenceableLoader;
.implements Lcom/google/android/exoplayer2/upstream/Loader$Callback;
.implements Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream;,
Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Lcom/google/android/exoplayer2/source/chunk/ChunkSource;",
">",
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/source/SampleStream;",
"Lcom/google/android/exoplayer2/source/SequenceableLoader;",
"Lcom/google/android/exoplayer2/upstream/Loader$Callback<",
"Lcom/google/android/exoplayer2/source/chunk/Chunk;",
">;",
"Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;"
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "ChunkSampleStream"
# instance fields
.field private final callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback<",
"Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<",
"TT;>;>;"
}
.end annotation
.end field
.field private final chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
.annotation system Ldalvik/annotation/Signature;
value = {
"TT;"
}
.end annotation
.end field
.field decodeOnlyUntilPositionUs:J
.field private final embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.field private final embeddedTrackFormats:[Lcom/google/android/exoplayer2/Format;
.field private final embeddedTrackTypes:[I
.field private final embeddedTracksSelected:[Z
.field private final eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.field private lastSeekPositionUs:J
.field private final loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.field private final loader:Lcom/google/android/exoplayer2/upstream/Loader;
.field loadingFinished:Z
.field private final mediaChunkOutput:Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;
.field private final mediaChunks:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;",
">;"
}
.end annotation
.end field
.field private final nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
.field private nextNotifyPrimaryFormatMediaChunkIndex:I
.field private pendingResetPositionUs:J
.field private primaryDownstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.field private final primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.field public final primaryTrackType:I
.field private final readOnlyMediaChunks:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;",
">;"
}
.end annotation
.end field
.field private releaseCallback:Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback<",
"TT;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(I[I[Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/source/chunk/ChunkSource;Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;Lcom/google/android/exoplayer2/upstream/Allocator;JILcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;)V
.registers 23
.param p1, "primaryTrackType" # I
.param p2, "embeddedTrackTypes" # [I
.param p3, "embeddedTrackFormats" # [Lcom/google/android/exoplayer2/Format;
.param p6, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p7, "positionUs" # J
.param p9, "minLoadableRetryCount" # I
.param p10, "eventDispatcher" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.annotation system Ldalvik/annotation/Signature;
value = {
"(I[I[",
"Lcom/google/android/exoplayer2/Format;",
"TT;",
"Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback<",
"Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<",
"TT;>;>;",
"Lcom/google/android/exoplayer2/upstream/Allocator;",
"JI",
"Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;",
")V"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 115
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
.local p4, "chunkSource":Lcom/google/android/exoplayer2/source/chunk/ChunkSource;, "TT;"
.local p5, "callback":Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;, "Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback<Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;>;"
new-instance v9, Lcom/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy;
move/from16 v11, p9
invoke-direct {v9, v11}, Lcom/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy;-><init>(I)V
move-object v0, p0
move v1, p1
move-object v2, p2
move-object v3, p3
move-object/from16 v4, p4
move-object/from16 v5, p5
move-object/from16 v6, p6
move-wide/from16 v7, p7
move-object/from16 v10, p10
invoke-direct/range {v0 .. v10}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;-><init>(I[I[Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/source/chunk/ChunkSource;Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;Lcom/google/android/exoplayer2/upstream/Allocator;JLcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;)V
.line 125
return-void
.end method
.method public constructor <init>(I[I[Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/source/chunk/ChunkSource;Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;Lcom/google/android/exoplayer2/upstream/Allocator;JLcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;)V
.registers 28
.param p1, "primaryTrackType" # I
.param p2, "embeddedTrackTypes" # [I
.param p3, "embeddedTrackFormats" # [Lcom/google/android/exoplayer2/Format;
.param p6, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p7, "positionUs" # J
.param p9, "loadErrorHandlingPolicy" # Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.param p10, "eventDispatcher" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.annotation system Ldalvik/annotation/Signature;
value = {
"(I[I[",
"Lcom/google/android/exoplayer2/Format;",
"TT;",
"Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback<",
"Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<",
"TT;>;>;",
"Lcom/google/android/exoplayer2/upstream/Allocator;",
"J",
"Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;",
"Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;",
")V"
}
.end annotation
.line 150
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
.local p4, "chunkSource":Lcom/google/android/exoplayer2/source/chunk/ChunkSource;, "TT;"
.local p5, "callback":Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;, "Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback<Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;>;"
move-object/from16 v0, p0
move/from16 v1, p1
move-object/from16 v2, p2
move-object/from16 v3, p6
move-wide/from16 v4, p7
invoke-direct/range {p0 .. p0}, Ljava/lang/Object;-><init>()V
.line 151
iput v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
.line 152
iput-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackTypes:[I
.line 153
move-object/from16 v6, p3
iput-object v6, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackFormats:[Lcom/google/android/exoplayer2/Format;
.line 154
move-object/from16 v7, p4
iput-object v7, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
.line 155
move-object/from16 v8, p5
iput-object v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;
.line 156
move-object/from16 v9, p10
iput-object v9, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 157
move-object/from16 v10, p9
iput-object v10, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.line 158
new-instance v11, Lcom/google/android/exoplayer2/upstream/Loader;
const-string v12, "Loader:ChunkSampleStream"
invoke-direct {v11, v12}, Lcom/google/android/exoplayer2/upstream/Loader;-><init>(Ljava/lang/String;)V
iput-object v11, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 159
new-instance v11, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
invoke-direct {v11}, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;-><init>()V
iput-object v11, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
.line 160
new-instance v11, Ljava/util/ArrayList;
invoke-direct {v11}, Ljava/util/ArrayList;-><init>()V
iput-object v11, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
.line 161
invoke-static {v11}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v11
iput-object v11, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->readOnlyMediaChunks:Ljava/util/List;
.line 163
const/4 v11, 0x0
if-nez v2, :cond_47
const/4 v12, 0x0
goto :goto_48
:cond_47
array-length v12, v2
.line 164
.local v12, "embeddedTrackCount":I
:goto_48
new-array v13, v12, [Lcom/google/android/exoplayer2/source/SampleQueue;
iput-object v13, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.line 165
new-array v13, v12, [Z
iput-object v13, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z
.line 166
add-int/lit8 v13, v12, 0x1
new-array v13, v13, [I
.line 167
.local v13, "trackTypes":[I
add-int/lit8 v14, v12, 0x1
new-array v14, v14, [Lcom/google/android/exoplayer2/source/SampleQueue;
.line 169
.local v14, "sampleQueues":[Lcom/google/android/exoplayer2/source/SampleQueue;
new-instance v15, Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-direct {v15, v3}, Lcom/google/android/exoplayer2/source/SampleQueue;-><init>(Lcom/google/android/exoplayer2/upstream/Allocator;)V
iput-object v15, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.line 170
aput v1, v13, v11
.line 171
aput-object v15, v14, v11
.line 173
const/4 v11, 0x0
.local v11, "i":I
:goto_64
if-ge v11, v12, :cond_7e
.line 174
new-instance v15, Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-direct {v15, v3}, Lcom/google/android/exoplayer2/source/SampleQueue;-><init>(Lcom/google/android/exoplayer2/upstream/Allocator;)V
.line 175
.local v15, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aput-object v15, v1, v11
.line 176
add-int/lit8 v1, v11, 0x1
aput-object v15, v14, v1
.line 177
add-int/lit8 v1, v11, 0x1
aget v16, v2, v11
aput v16, v13, v1
.line 173
.end local v15 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v11, v11, 0x1
move/from16 v1, p1
goto :goto_64
.line 180
.end local v11 # "i":I
:cond_7e
new-instance v1, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;
invoke-direct {v1, v13, v14}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;-><init>([I[Lcom/google/android/exoplayer2/source/SampleQueue;)V
iput-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunkOutput:Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;
.line 181
iput-wide v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 182
iput-wide v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
.line 183
return-void
.end method
.method static synthetic access$000(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)[Z
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;
.line 45
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z
return-object v0
.end method
.method static synthetic access$100(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)[I
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;
.line 45
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackTypes:[I
return-object v0
.end method
.method static synthetic access$200(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)[Lcom/google/android/exoplayer2/Format;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;
.line 45
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackFormats:[Lcom/google/android/exoplayer2/Format;
return-object v0
.end method
.method static synthetic access$300(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)J
.registers 3
.param p0, "x0" # Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;
.line 45
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
return-wide v0
.end method
.method static synthetic access$400(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;
.line 45
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
return-object v0
.end method
.method private discardDownstreamMediaChunks(I)V
.registers 5
.param p1, "discardToSampleIndex" # I
.line 674
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
nop
.line 675
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleIndexToMediaChunkIndex(II)I
move-result v1
.line 677
.local v1, "discardToMediaChunkIndex":I
iget v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
.line 678
invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I
move-result v1
.line 679
if-lez v1, :cond_18
.line 680
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-static {v2, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->removeRange(Ljava/util/List;II)V
.line 681
iget v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
sub-int/2addr v0, v1
iput v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
.line 683
:cond_18
return-void
.end method
.method private discardUpstreamMediaChunksFromIndex(I)Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.registers 6
.param p1, "chunkIndex" # I
.line 739
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.line 740
.local v0, "firstRemovedChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v2
invoke-static {v1, p1, v2}, Lcom/google/android/exoplayer2/util/Util;->removeRange(Ljava/util/List;II)V
.line 741
iget v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
.line 742
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I
move-result v1
iput v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
.line 743
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
const/4 v2, 0x0
invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I
move-result v2
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardUpstreamSamples(I)V
.line 744
const/4 v1, 0x0
.local v1, "i":I
:goto_2a
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v3, v2
if-ge v1, v3, :cond_3d
.line 745
aget-object v2, v2, v1
add-int/lit8 v3, v1, 0x1
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I
move-result v3
invoke-virtual {v2, v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardUpstreamSamples(I)V
.line 744
add-int/lit8 v1, v1, 0x1
goto :goto_2a
.line 747
.end local v1 # "i":I
:cond_3d
return-object v0
.end method
.method private getLastMediaChunk()Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.registers 3
.line 728
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
return-object v0
.end method
.method private haveReadFromMediaChunk(I)Z
.registers 8
.param p1, "mediaChunkIndex" # I
.line 657
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.line 658
.local v0, "mediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->getReadIndex()I
move-result v1
const/4 v2, 0x0
invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I
move-result v3
const/4 v4, 0x1
if-le v1, v3, :cond_17
.line 659
return v4
.line 661
:cond_17
const/4 v1, 0x0
.local v1, "i":I
:goto_18
iget-object v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v5, v3
if-ge v1, v5, :cond_2f
.line 662
aget-object v3, v3, v1
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->getReadIndex()I
move-result v3
add-int/lit8 v5, v1, 0x1
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I
move-result v5
if-le v3, v5, :cond_2c
.line 663
return v4
.line 661
:cond_2c
add-int/lit8 v1, v1, 0x1
goto :goto_18
.line 666
.end local v1 # "i":I
:cond_2f
return v2
.end method
.method private isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
.registers 3
.param p1, "chunk" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.line 652
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
instance-of v0, p1, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
return v0
.end method
.method private maybeNotifyPrimaryTrackFormatChanged()V
.registers 5
.line 686
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->getReadIndex()I
move-result v0
.line 687
.local v0, "readSampleIndex":I
iget v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
add-int/lit8 v1, v1, -0x1
.line 688
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleIndexToMediaChunkIndex(II)I
move-result v1
.line 690
.local v1, "notifyToMediaChunkIndex":I
:goto_e
iget v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
if-gt v2, v1, :cond_1a
.line 691
add-int/lit8 v3, v2, 0x1
iput v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->maybeNotifyPrimaryTrackFormatChanged(I)V
goto :goto_e
.line 693
:cond_1a
return-void
.end method
.method private maybeNotifyPrimaryTrackFormatChanged(I)V
.registers 11
.param p1, "mediaChunkReadIndex" # I
.line 696
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.line 697
.local v0, "currentChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
iget-object v8, v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
.line 698
.local v8, "trackFormat":Lcom/google/android/exoplayer2/Format;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryDownstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
invoke-virtual {v8, v1}, Lcom/google/android/exoplayer2/Format;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_20
.line 699
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
iget v4, v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->trackSelectionReason:I
iget-object v5, v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->trackSelectionData:Ljava/lang/Object;
iget-wide v6, v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->startTimeUs:J
move-object v3, v8
invoke-virtual/range {v1 .. v7}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->downstreamFormatChanged(ILcom/google/android/exoplayer2/Format;ILjava/lang/Object;J)V
.line 703
:cond_20
iput-object v8, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryDownstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.line 704
return-void
.end method
.method private primarySampleIndexToMediaChunkIndex(II)I
.registers 6
.param p1, "primarySampleIndex" # I
.param p2, "minChunkIndex" # I
.line 719
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
add-int/lit8 v0, p2, 0x1
.local v0, "i":I
:goto_2
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ge v0, v1, :cond_1f
.line 720
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
const/4 v2, 0x0
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I
move-result v1
if-le v1, p1, :cond_1c
.line 721
add-int/lit8 v1, v0, -0x1
return v1
.line 719
:cond_1c
add-int/lit8 v0, v0, 0x1
goto :goto_2
.line 724
.end local v0 # "i":I
:cond_1f
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
return v0
.end method
# virtual methods
.method public continueLoading(J)Z
.registers 31
.param p1, "positionUs" # J
.line 552
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object/from16 v0, p0
iget-boolean v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
const/4 v2, 0x0
if-nez v1, :cond_ac
iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v1
if-eqz v1, :cond_11
goto/16 :goto_ac
.line 556
:cond_11
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v1
.line 559
.local v1, "pendingReset":Z
if-eqz v1, :cond_1e
.line 560
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v3
.line 561
.local v3, "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;>;"
iget-wide v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.local v4, "loadPositionUs":J
goto :goto_26
.line 563
.end local v3 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;>;"
.end local v4 # "loadPositionUs":J
:cond_1e
iget-object v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->readOnlyMediaChunks:Ljava/util/List;
.line 564
.restart local v3 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;>;"
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
move-result-object v4
iget-wide v4, v4, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->endTimeUs:J
.line 566
.restart local v4 # "loadPositionUs":J
:goto_26
iget-object v6, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
iget-object v12, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
move-wide/from16 v7, p1
move-wide v9, v4
move-object v11, v3
invoke-interface/range {v6 .. v12}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->getNextChunk(JJLjava/util/List;Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;)V
.line 567
iget-object v6, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
iget-boolean v6, v6, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->endOfStream:Z
.line 568
.local v6, "endOfStream":Z
iget-object v7, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
iget-object v7, v7, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->chunk:Lcom/google/android/exoplayer2/source/chunk/Chunk;
.line 569
.local v7, "loadable":Lcom/google/android/exoplayer2/source/chunk/Chunk;
iget-object v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;
invoke-virtual {v8}, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->clear()V
.line 571
const-wide v8, -0x7fffffffffffffffL # -4.9E-324
const/4 v10, 0x1
if-eqz v6, :cond_4b
.line 572
iput-wide v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 573
iput-boolean v10, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
.line 574
return v10
.line 577
:cond_4b
if-nez v7, :cond_4e
.line 578
return v2
.line 581
:cond_4e
invoke-direct {v0, v7}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
move-result v11
if-eqz v11, :cond_77
.line 582
move-object v11, v7
check-cast v11, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.line 583
.local v11, "mediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
if-eqz v1, :cond_6d
.line 584
iget-wide v12, v11, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->startTimeUs:J
iget-wide v14, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
cmp-long v16, v12, v14
if-nez v16, :cond_62
const/4 v2, 0x1
.line 586
.local v2, "resetToMediaChunk":Z
:cond_62
if-eqz v2, :cond_67
const-wide/16 v12, 0x0
goto :goto_69
:cond_67
iget-wide v12, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
:goto_69
iput-wide v12, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->decodeOnlyUntilPositionUs:J
.line 587
iput-wide v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 589
.end local v2 # "resetToMediaChunk":Z
:cond_6d
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunkOutput:Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;
invoke-virtual {v11, v2}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->init(Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;)V
.line 590
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v2, v11}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 592
.end local v11 # "mediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
:cond_77
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
iget-object v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v9, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
.line 594
invoke-interface {v8, v9}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getMinimumLoadableRetryCount(I)I
move-result v8
.line 593
invoke-virtual {v2, v7, v0, v8}, Lcom/google/android/exoplayer2/upstream/Loader;->startLoading(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;Lcom/google/android/exoplayer2/upstream/Loader$Callback;I)J
move-result-wide v8
.line 595
.local v8, "elapsedRealtimeMs":J
iget-object v11, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v12, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v13, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
iget v14, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
iget-object v15, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iget v2, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I
iget-object v10, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object;
move/from16 v24, v1
.end local v1 # "pendingReset":Z
.local v24, "pendingReset":Z
iget-wide v0, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J
move-object/from16 v25, v3
move-wide/from16 v26, v4
.end local v3 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;>;"
.end local v4 # "loadPositionUs":J
.local v25, "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;>;"
.local v26, "loadPositionUs":J
iget-wide v3, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J
move/from16 v16, v2
move-object/from16 v17, v10
move-wide/from16 v18, v0
move-wide/from16 v20, v3
move-wide/from16 v22, v8
invoke-virtual/range {v11 .. v23}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadStarted(Lcom/google/android/exoplayer2/upstream/DataSpec;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJ)V
.line 605
const/4 v0, 0x1
return v0
.line 553
.end local v6 # "endOfStream":Z
.end local v7 # "loadable":Lcom/google/android/exoplayer2/source/chunk/Chunk;
.end local v8 # "elapsedRealtimeMs":J
.end local v24 # "pendingReset":Z
.end local v25 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;>;"
.end local v26 # "loadPositionUs":J
:cond_ac
:goto_ac
return v2
.end method
.method public discardBuffer(JZ)V
.registers 11
.param p1, "positionUs" # J
.param p3, "toKeyframe" # Z
.line 193
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_7
.line 194
return-void
.line 196
:cond_7
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->getFirstIndex()I
move-result v0
.line 197
.local v0, "oldFirstSampleIndex":I
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
const/4 v2, 0x1
invoke-virtual {v1, p1, p2, p3, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardTo(JZZ)V
.line 198
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->getFirstIndex()I
move-result v1
.line 199
.local v1, "newFirstSampleIndex":I
if-le v1, v0, :cond_33
.line 200
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->getFirstTimestampUs()J
move-result-wide v2
.line 201
.local v2, "discardToUs":J
const/4 v4, 0x0
.local v4, "i":I
:goto_22
iget-object v5, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v6, v5
if-ge v4, v6, :cond_33
.line 202
aget-object v5, v5, v4
iget-object v6, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z
aget-boolean v6, v6, v4
invoke-virtual {v5, v2, v3, p3, v6}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardTo(JZZ)V
.line 201
add-int/lit8 v4, v4, 0x1
goto :goto_22
.line 205
.end local v2 # "discardToUs":J
.end local v4 # "i":I
:cond_33
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->discardDownstreamMediaChunks(I)V
.line 206
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 272
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
invoke-interface {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->getAdjustedSeekPositionUs(JLcom/google/android/exoplayer2/SeekParameters;)J
move-result-wide v0
return-wide v0
.end method
.method public getBufferedPositionUs()J
.registers 7
.line 247
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
if-eqz v0, :cond_7
.line 248
const-wide/high16 v0, -0x8000000000000000L
return-wide v0
.line 249
:cond_7
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_10
.line 250
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
return-wide v0
.line 252
:cond_10
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
.line 253
.local v0, "bufferedPositionUs":J
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
move-result-object v2
.line 254
.local v2, "lastMediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->isLoadCompleted()Z
move-result v3
if-eqz v3, :cond_1e
move-object v3, v2
goto :goto_37
:cond_1e
iget-object v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
.line 255
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
const/4 v4, 0x1
if-le v3, v4, :cond_36
iget-object v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v4
add-int/lit8 v4, v4, -0x2
invoke-virtual {v3, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
goto :goto_37
:cond_36
const/4 v3, 0x0
:goto_37
nop
.line 256
.local v3, "lastCompletedMediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
if-eqz v3, :cond_40
.line 257
iget-wide v4, v3, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->endTimeUs:J
invoke-static {v0, v1, v4, v5}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
.line 259
:cond_40
iget-object v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v4
invoke-static {v0, v1, v4, v5}, Ljava/lang/Math;->max(JJ)J
move-result-wide v4
return-wide v4
.end method
.method public getChunkSource()Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()TT;"
}
.end annotation
.line 236
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
return-object v0
.end method
.method public getNextLoadPositionUs()J
.registers 3
.line 610
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_9
.line 611
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
return-wide v0
.line 613
:cond_9
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
if-eqz v0, :cond_10
const-wide/high16 v0, -0x8000000000000000L
goto :goto_16
:cond_10
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
move-result-object v0
iget-wide v0, v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->endTimeUs:J
:goto_16
return-wide v0
.end method
.method isPendingReset()Z
.registers 6
.line 670
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-eqz v4, :cond_d
const/4 v0, 0x1
goto :goto_e
:cond_d
const/4 v0, 0x0
:goto_e
return v0
.end method
.method public isReady()Z
.registers 2
.line 393
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
if-nez v0, :cond_15
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-nez v0, :cond_13
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->hasNextSample()Z
move-result v0
if-eqz v0, :cond_13
goto :goto_15
:cond_13
const/4 v0, 0x0
goto :goto_16
:cond_15
:goto_15
const/4 v0, 0x1
:goto_16
return v0
.end method
.method public maybeThrowError()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 398
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->maybeThrowError()V
.line 399
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v0
if-nez v0, :cond_12
.line 400
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->maybeThrowError()V
.line 402
:cond_12
return-void
.end method
.method public onLoadCanceled(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJZ)V
.registers 28
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.param p6, "released" # Z
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object/from16 v0, p0
move-object/from16 v1, p1
move-wide/from16 v15, p2
move-wide/from16 v17, p4
.line 458
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 460
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getUri()Landroid/net/Uri;
move-result-object v4
.line 461
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getResponseHeaders()Ljava/util/Map;
move-result-object v5
iget v6, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
iget v7, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
iget-object v8, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iget v9, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I
iget-object v10, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object;
iget-wide v11, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J
iget-wide v13, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J
.line 471
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J
move-result-wide v19
.line 458
invoke-virtual/range {v2 .. v20}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadCanceled(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJJJ)V
.line 472
if-nez p6, :cond_43
.line 473
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 474
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v3, v2
const/4 v4, 0x0
:goto_34
if-ge v4, v3, :cond_3e
aget-object v5, v2, v4
.line 475
.local v5, "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 474
.end local v5 # "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v4, v4, 0x1
goto :goto_34
.line 477
:cond_3e
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;
invoke-interface {v2, v0}, Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 479
:cond_43
return-void
.end method
.method public bridge synthetic onLoadCanceled(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJZ)V
.registers 14
.line 45
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object v1, p1
check-cast v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;
move-object v0, p0
move-wide v2, p2
move-wide v4, p4
move v6, p6
invoke-virtual/range {v0 .. v6}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->onLoadCanceled(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJZ)V
return-void
.end method
.method public onLoadCompleted(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJ)V
.registers 27
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object/from16 v0, p0
move-object/from16 v1, p1
move-wide/from16 v15, p2
move-wide/from16 v17, p4
.line 437
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
invoke-interface {v2, v1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->onChunkLoadCompleted(Lcom/google/android/exoplayer2/source/chunk/Chunk;)V
.line 438
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 440
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getUri()Landroid/net/Uri;
move-result-object v4
.line 441
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getResponseHeaders()Ljava/util/Map;
move-result-object v5
iget v6, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
iget v7, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
iget-object v8, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iget v9, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I
iget-object v10, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object;
iget-wide v11, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J
iget-wide v13, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J
.line 451
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J
move-result-wide v19
.line 438
invoke-virtual/range {v2 .. v20}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadCompleted(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJJJ)V
.line 452
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;
invoke-interface {v2, v0}, Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 453
return-void
.end method
.method public bridge synthetic onLoadCompleted(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJ)V
.registers 12
.line 45
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object v1, p1
check-cast v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;
move-object v0, p0
move-wide v2, p2
move-wide v4, p4
invoke-virtual/range {v0 .. v5}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->onLoadCompleted(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJ)V
return-void
.end method
.method public onLoadError(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJLjava/io/IOException;I)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.registers 42
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.param p6, "error" # Ljava/io/IOException;
.param p7, "errorCount" # I
.line 488
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object/from16 v0, p0
move-object/from16 v7, p1
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J
move-result-wide v29
.line 489
.local v29, "bytesLoaded":J
invoke-direct/range {p0 .. p1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
move-result v31
.line 490
.local v31, "isMediaChunk":Z
iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
const/4 v8, 0x1
add-int/lit8 v15, v1, -0x1
.line 491
.local v15, "lastChunkIndex":I
const/4 v9, 0x0
const-wide/16 v1, 0x0
cmp-long v3, v29, v1
if-eqz v3, :cond_27
if-eqz v31, :cond_27
.line 492
invoke-direct {v0, v15}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->haveReadFromMediaChunk(I)Z
move-result v1
if-nez v1, :cond_25
goto :goto_27
:cond_25
const/4 v1, 0x0
goto :goto_28
:cond_27
:goto_27
const/4 v1, 0x1
:goto_28
move/from16 v32, v1
.line 493
.local v32, "cancelable":Z
const-wide v10, -0x7fffffffffffffffL # -4.9E-324
if-eqz v32, :cond_41
iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v2, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
.line 495
move-wide/from16 v3, p4
move-object/from16 v5, p6
move/from16 v6, p7
invoke-interface/range {v1 .. v6}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getBlacklistDurationMsFor(IJLjava/io/IOException;I)J
move-result-wide v1
move-wide v5, v1
goto :goto_42
:cond_41
move-wide v5, v10
.line 498
.local v5, "blacklistDurationMs":J
:goto_42
const/4 v12, 0x0
.line 499
.local v12, "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
move-object/from16 v2, p1
move/from16 v3, v32
move-object/from16 v4, p6
invoke-interface/range {v1 .. v6}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->onChunkLoadError(Lcom/google/android/exoplayer2/source/chunk/Chunk;ZLjava/lang/Exception;J)Z
move-result v1
if-eqz v1, :cond_77
.line 500
if-eqz v32, :cond_70
.line 501
sget-object v12, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.line 502
if-eqz v31, :cond_77
.line 503
invoke-direct {v0, v15}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->discardUpstreamMediaChunksFromIndex(I)Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
move-result-object v1
.line 504
.local v1, "removed":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
if-ne v1, v7, :cond_5f
const/4 v2, 0x1
goto :goto_60
:cond_5f
const/4 v2, 0x0
:goto_60
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 505
iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z
move-result v2
if-eqz v2, :cond_6f
.line 506
iget-wide v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
iput-wide v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 508
.end local v1 # "removed":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
:cond_6f
goto :goto_77
.line 510
:cond_70
const-string v1, "ChunkSampleStream"
const-string v2, "Ignoring attempt to cancel non-cancelable load."
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 514
:cond_77
:goto_77
if-nez v12, :cond_99
.line 516
iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v2, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
.line 517
move-object/from16 v16, v1
move/from16 v17, v2
move-wide/from16 v18, p4
move-object/from16 v20, p6
move/from16 v21, p7
invoke-interface/range {v16 .. v21}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getRetryDelayMsFor(IJLjava/io/IOException;I)J
move-result-wide v1
.line 519
.local v1, "retryDelayMs":J
cmp-long v3, v1, v10
if-eqz v3, :cond_94
.line 521
invoke-static {v9, v1, v2}, Lcom/google/android/exoplayer2/upstream/Loader;->createRetryAction(ZJ)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-result-object v3
goto :goto_96
:cond_94
sget-object v3, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY_FATAL:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_96
move-object v12, v3
move-object v1, v12
goto :goto_9a
.line 514
.end local v1 # "retryDelayMs":J
:cond_99
move-object v1, v12
.line 525
.end local v12 # "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.local v1, "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_9a
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;->isRetry()Z
move-result v2
xor-int/2addr v2, v8
.local v2, "canceled":Z
move/from16 v28, v2
.line 526
iget-object v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v9, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 528
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getUri()Landroid/net/Uri;
move-result-object v10
.line 529
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getResponseHeaders()Ljava/util/Map;
move-result-object v11
iget v12, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
iget v13, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
iget-object v14, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iget v3, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I
move v4, v15
.end local v15 # "lastChunkIndex":I
.local v4, "lastChunkIndex":I
move v15, v3
iget-object v3, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object;
move-object/from16 v16, v3
move/from16 v33, v4
.end local v4 # "lastChunkIndex":I
.local v33, "lastChunkIndex":I
iget-wide v3, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J
move-wide/from16 v17, v3
iget-wide v3, v7, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J
move-wide/from16 v19, v3
.line 526
move-wide/from16 v21, p2
move-wide/from16 v23, p4
move-wide/from16 v25, v29
move-object/from16 v27, p6
invoke-virtual/range {v8 .. v28}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadError(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJJJLjava/io/IOException;Z)V
.line 542
if-eqz v2, :cond_d7
.line 543
iget-object v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;
invoke-interface {v3, v0}, Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 545
:cond_d7
return-object v1
.end method
.method public bridge synthetic onLoadError(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJLjava/io/IOException;I)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.registers 16
.line 45
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
move-object v1, p1
check-cast v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;
move-object v0, p0
move-wide v2, p2
move-wide v4, p4
move-object v6, p6
move v7, p7
invoke-virtual/range {v0 .. v7}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->onLoadError(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJLjava/io/IOException;I)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-result-object p1
return-object p1
.end method
.method public onLoaderReleased()V
.registers 5
.line 380
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 381
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
:goto_9
if-ge v2, v1, :cond_13
aget-object v3, v0, v2
.line 382
.local v3, "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 381
.end local v3 # "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_9
.line 384
:cond_13
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->releaseCallback:Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;
if-eqz v0, :cond_1a
.line 385
invoke-interface {v0, p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;->onSampleStreamReleased(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)V
.line 387
:cond_1a
return-void
.end method
.method public readData(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Z)I
.registers 12
.param p1, "formatHolder" # Lcom/google/android/exoplayer2/FormatHolder;
.param p2, "buffer" # Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;
.param p3, "formatRequired" # Z
.line 407
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_8
.line 408
const/4 v0, -0x3
return v0
.line 410
:cond_8
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->maybeNotifyPrimaryTrackFormatChanged()V
.line 411
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
iget-boolean v5, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
iget-wide v6, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->decodeOnlyUntilPositionUs:J
move-object v2, p1
move-object v3, p2
move v4, p3
invoke-virtual/range {v1 .. v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->read(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;ZZJ)I
move-result v0
return v0
.end method
.method public reevaluateBuffer(J)V
.registers 15
.param p1, "positionUs" # J
.line 619
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v0
if-nez v0, :cond_56
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_f
goto :goto_56
.line 623
:cond_f
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 624
.local v0, "currentQueueSize":I
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->readOnlyMediaChunks:Ljava/util/List;
invoke-interface {v1, p1, p2, v2}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->getPreferredQueueSize(JLjava/util/List;)I
move-result v1
.line 625
.local v1, "preferredQueueSize":I
if-gt v0, v1, :cond_20
.line 626
return-void
.line 629
:cond_20
move v2, v0
.line 630
.local v2, "newQueueSize":I
move v3, v1
.local v3, "i":I
:goto_22
if-ge v3, v0, :cond_2f
.line 631
invoke-direct {p0, v3}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->haveReadFromMediaChunk(I)Z
move-result v4
if-nez v4, :cond_2c
.line 632
move v2, v3
.line 633
goto :goto_2f
.line 630
:cond_2c
add-int/lit8 v3, v3, 0x1
goto :goto_22
.line 636
.end local v3 # "i":I
:cond_2f
:goto_2f
if-ne v2, v0, :cond_32
.line 637
return-void
.line 640
:cond_32
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
move-result-object v3
iget-wide v10, v3, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->endTimeUs:J
.line 641
.local v10, "endTimeUs":J
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->discardUpstreamMediaChunksFromIndex(I)Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
move-result-object v3
.line 642
.local v3, "firstRemovedChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
iget-object v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v4}, Ljava/util/ArrayList;->isEmpty()Z
move-result v4
if-eqz v4, :cond_48
.line 643
iget-wide v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
iput-wide v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 645
:cond_48
const/4 v4, 0x0
iput-boolean v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
.line 646
iget-object v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget v5, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I
iget-wide v6, v3, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->startTimeUs:J
move-wide v8, v10
invoke-virtual/range {v4 .. v9}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->upstreamDiscarded(IJJ)V
.line 647
return-void
.line 620
.end local v0 # "currentQueueSize":I
.end local v1 # "preferredQueueSize":I
.end local v2 # "newQueueSize":I
.end local v3 # "firstRemovedChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.end local v10 # "endTimeUs":J
:cond_56
:goto_56
return-void
.end method
.method public release()V
.registers 2
.line 356
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->release(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;)V
.line 357
return-void
.end method
.method public release(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback<",
"TT;>;)V"
}
.end annotation
.line 369
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
.local p1, "callback":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback<TT;>;"
iput-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->releaseCallback:Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$ReleaseCallback;
.line 371
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToEnd()V
.line 372
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
:goto_b
if-ge v2, v1, :cond_15
aget-object v3, v0, v2
.line 373
.local v3, "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToEnd()V
.line 372
.end local v3 # "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_b
.line 375
:cond_15
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0, p0}, Lcom/google/android/exoplayer2/upstream/Loader;->release(Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;)V
.line 376
return-void
.end method
.method public seekToUs(J)V
.registers 13
.param p1, "positionUs" # J
.line 281
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
.line 282
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_b
.line 284
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 285
return-void
.line 289
:cond_b
const/4 v0, 0x0
.line 290
.local v0, "seekToMediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
const/4 v1, 0x0
.local v1, "i":I
:goto_d
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
if-ge v1, v2, :cond_38
.line 291
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.line 292
.local v2, "mediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
iget-wide v3, v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->startTimeUs:J
.line 293
.local v3, "mediaChunkStartTimeUs":J
cmp-long v5, v3, p1
if-nez v5, :cond_30
iget-wide v5, v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->clippedStartTimeUs:J
const-wide v7, -0x7fffffffffffffffL # -4.9E-324
cmp-long v9, v5, v7
if-nez v9, :cond_30
.line 294
move-object v0, v2
.line 295
goto :goto_38
.line 296
:cond_30
cmp-long v5, v3, p1
if-lez v5, :cond_35
.line 298
goto :goto_38
.line 290
.end local v2 # "mediaChunk":Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;
.end local v3 # "mediaChunkStartTimeUs":J
:cond_35
add-int/lit8 v1, v1, 0x1
goto :goto_d
.line 304
.end local v1 # "i":I
:cond_38
:goto_38
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 305
const/4 v1, 0x1
const/4 v2, 0x0
if-eqz v0, :cond_50
.line 309
iget-object v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.line 310
invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I
move-result v4
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->setReadPosition(I)Z
move-result v3
.line 311
.local v3, "seekInsideBuffer":Z
const-wide/16 v4, 0x0
iput-wide v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->decodeOnlyUntilPositionUs:J
goto :goto_6b
.line 313
.end local v3 # "seekInsideBuffer":Z
:cond_50
iget-object v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.line 317
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->getNextLoadPositionUs()J
move-result-wide v4
cmp-long v6, p1, v4
if-gez v6, :cond_5c
const/4 v4, 0x1
goto :goto_5d
:cond_5c
const/4 v4, 0x0
.line 314
:goto_5d
invoke-virtual {v3, p1, p2, v1, v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v3
const/4 v4, -0x1
if-eq v3, v4, :cond_66
const/4 v3, 0x1
goto :goto_67
:cond_66
const/4 v3, 0x0
.line 319
.restart local v3 # "seekInsideBuffer":Z
:goto_67
iget-wide v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J
iput-wide v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->decodeOnlyUntilPositionUs:J
.line 322
:goto_6b
if-eqz v3, :cond_8a
.line 324
iget-object v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.line 326
invoke-virtual {v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->getReadIndex()I
move-result v4
.line 325
invoke-direct {p0, v4, v2}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleIndexToMediaChunkIndex(II)I
move-result v4
iput v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
.line 328
iget-object v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v5, v4
const/4 v6, 0x0
:goto_7d
if-ge v6, v5, :cond_b5
aget-object v7, v4, v6
.line 329
.local v7, "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 330
invoke-virtual {v7, p1, p2, v1, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
.line 328
.end local v7 # "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v6, v6, 0x1
goto :goto_7d
.line 334
:cond_8a
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J
.line 335
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
.line 336
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->clear()V
.line 337
iput v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextNotifyPrimaryFormatMediaChunkIndex:I
.line 338
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v1
if-eqz v1, :cond_a3
.line 339
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/Loader;->cancelLoading()V
goto :goto_b5
.line 341
:cond_a3
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 342
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v4, v1
:goto_ab
if-ge v2, v4, :cond_b5
aget-object v5, v1, v2
.line 343
.local v5, "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 342
.end local v5 # "embeddedSampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_ab
.line 347
:cond_b5
:goto_b5
return-void
.end method
.method public selectEmbeddedTrack(JI)Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream;
.registers 7
.param p1, "positionUs" # J
.param p3, "trackType" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(JI)",
"Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<",
"TT;>.EmbeddedSampleStream;"
}
.end annotation
.line 219
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
const/4 v0, 0x0
.local v0, "i":I
:goto_1
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v1
if-ge v0, v1, :cond_34
.line 220
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackTypes:[I
aget v1, v1, v0
if-ne v1, p3, :cond_31
.line 221
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z
aget-boolean v1, v1, v0
const/4 v2, 0x1
xor-int/2addr v1, v2
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 222
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z
aput-boolean v2, v1, v0
.line 223
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v1, v1, v0
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 224
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v1, v1, v0
invoke-virtual {v1, p1, p2, v2, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
.line 225
new-instance v1, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v2, v2, v0
invoke-direct {v1, p0, p0, v2, v0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream;-><init>(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;Lcom/google/android/exoplayer2/source/SampleQueue;I)V
return-object v1
.line 219
:cond_31
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 229
.end local v0 # "i":I
:cond_34
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
goto :goto_3b
:goto_3a
throw v0
:goto_3b
goto :goto_3a
.end method
.method public skipData(J)I
.registers 6
.param p1, "positionUs" # J
.line 417
.local p0, "this":Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;, "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<TT;>;"
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_8
.line 418
const/4 v0, 0x0
return v0
.line 421
:cond_8
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z
if-eqz v0, :cond_1d
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v0
cmp-long v2, p1, v0
if-lez v2, :cond_1d
.line 422
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceToEnd()I
move-result v0
.local v0, "skipCount":I
goto :goto_28
.line 424
.end local v0 # "skipCount":I
:cond_1d
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
const/4 v1, 0x1
invoke-virtual {v0, p1, p2, v1, v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v0
.line 425
.restart local v0 # "skipCount":I
const/4 v1, -0x1
if-ne v0, v1, :cond_28
.line 426
const/4 v0, 0x0
.line 429
:cond_28
:goto_28
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->maybeNotifyPrimaryTrackFormatChanged()V
.line 430
return v0
.end method