.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; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "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;", ">;" } .end annotation # 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 private final embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; .field private final embeddedTrackTypes:[I .field private final embeddedTracksSelected:[Z .field private final eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; .field public lastSeekPositionUs:J .field private final loader:Lcom/google/android/exoplayer2/upstream/Loader; .field public loadingFinished:Z .field private final mediaChunkOutput:Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput; .field private final mediaChunks:Ljava/util/LinkedList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/LinkedList<", "Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;", ">;" } .end annotation .end field .field private final minLoadableRetryCount:I .field private final nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder; .field private pendingResetPositionUs:J .field private primaryDownstreamTrackFormat:Lcom/google/android/exoplayer2/Format; .field private final primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; .field private 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 # direct methods .method public constructor (I[ILcom/google/android/exoplayer2/source/chunk/ChunkSource;Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;Lcom/google/android/exoplayer2/upstream/Allocator;JILcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(I[ITT;", "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/AdaptiveMediaSourceEventListener$EventDispatcher;", ")V" } .end annotation .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V .line 2 iput p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I .line 3 iput-object p2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackTypes:[I .line 4 iput-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource; .line 5 iput-object p4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback; .line 6 iput-object p9, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; .line 7 iput p8, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->minLoadableRetryCount:I .line 8 new-instance p3, Lcom/google/android/exoplayer2/upstream/Loader; const-string p4, "Loader:ChunkSampleStream" invoke-direct {p3, p4}, Lcom/google/android/exoplayer2/upstream/Loader;->(Ljava/lang/String;)V iput-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader; .line 9 new-instance p3, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder; invoke-direct {p3}, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->()V iput-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder; .line 10 new-instance p3, Ljava/util/LinkedList; invoke-direct {p3}, Ljava/util/LinkedList;->()V iput-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; .line 11 invoke-static {p3}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; move-result-object p3 iput-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->readOnlyMediaChunks:Ljava/util/List; const/4 p3, 0x0 if-nez p2, :cond_0 move p4, p3 goto :goto_0 .line 12 :cond_0 array-length p4, p2 .line 13 :goto_0 new-array p8, p4, [Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; iput-object p8, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; .line 14 new-array p8, p4, [Z iput-object p8, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z add-int/lit8 p8, p4, 0x1 .line 15 new-array p9, p8, [I .line 16 new-array p8, p8, [Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; .line 17 new-instance v0, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-direct {v0, p5}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->(Lcom/google/android/exoplayer2/upstream/Allocator;)V iput-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; .line 18 aput p1, p9, p3 .line 19 aput-object v0, p8, p3 :goto_1 if-ge p3, p4, :cond_1 .line 20 new-instance p1, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-direct {p1, p5}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->(Lcom/google/android/exoplayer2/upstream/Allocator;)V .line 21 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; aput-object p1, v0, p3 add-int/lit8 v0, p3, 0x1 .line 22 aput-object p1, p8, v0 .line 23 aget p1, p2, p3 aput p1, p9, v0 move p3, v0 goto :goto_1 .line 24 :cond_1 new-instance p1, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput; invoke-direct {p1, p9, p8}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;->([I[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;)V iput-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunkOutput:Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput; .line 25 iput-wide p6, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J .line 26 iput-wide p6, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J return-void .end method .method public static synthetic access$000(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;)[Z .locals 0 .line 1 iget-object p0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z return-object p0 .end method .method private discardDownstreamMediaChunks(I)V .locals 8 .line 1 :goto_0 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->size()I move-result v0 const/4 v1, 0x1 if-le v0, v1, :cond_0 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; .line 2 invoke-virtual {v0, v1}, Ljava/util/LinkedList;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; const/4 v1, 0x0 invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I move-result v0 if-gt v0, p1, :cond_0 .line 3 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object; goto :goto_0 .line 4 :cond_0 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {p1}, Ljava/util/LinkedList;->getFirst()Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; .line 5 iget-object v7, p1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format; .line 6 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryDownstreamTrackFormat:Lcom/google/android/exoplayer2/Format; invoke-virtual {v7, v0}, Lcom/google/android/exoplayer2/Format;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_1 .line 7 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; iget v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I iget v3, p1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I iget-object v4, p1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object; iget-wide v5, p1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J move-object v2, v7 invoke-virtual/range {v0 .. v6}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->downstreamFormatChanged(ILcom/google/android/exoplayer2/Format;ILjava/lang/Object;J)V .line 8 :cond_1 iput-object v7, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryDownstreamTrackFormat:Lcom/google/android/exoplayer2/Format; return-void .end method .method private discardUpstreamMediaChunks(I)Z .locals 10 .line 1 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->size()I move-result v0 const/4 v1, 0x0 if-gt v0, p1, :cond_0 return v1 :cond_0 const-wide/16 v2, 0x0 .line 2 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; iget-wide v8, v0, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J const/4 v0, 0x0 move-wide v6, v2 .line 3 :goto_0 iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v2}, Ljava/util/LinkedList;->size()I move-result v2 if-le v2, p1, :cond_1 .line 4 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->removeLast()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; .line 5 iget-wide v6, v0, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J .line 6 iput-boolean v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z goto :goto_0 .line 7 :cond_1 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I move-result v2 invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->discardUpstreamSamples(I)V .line 8 :goto_1 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v2, p1 if-ge v1, v2, :cond_2 .line 9 aget-object p1, p1, v1 add-int/lit8 v1, v1, 0x1 invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I move-result v2 invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->discardUpstreamSamples(I)V goto :goto_1 .line 10 :cond_2 iget-object v4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; iget v5, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I invoke-virtual/range {v4 .. v9}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->upstreamDiscarded(IJJ)V const/4 p1, 0x1 return p1 .end method .method private isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z .locals 0 .line 1 instance-of p1, p1, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; return p1 .end method .method private maybeDiscardUpstream(J)V .locals 2 .line 1 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource; iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->readOnlyMediaChunks:Ljava/util/List; invoke-interface {v0, p1, p2, v1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->getPreferredQueueSize(JLjava/util/List;)I move-result p1 const/4 p2, 0x1 .line 2 invoke-static {p2, p1}, Ljava/lang/Math;->max(II)I move-result p1 invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->discardUpstreamMediaChunks(I)Z return-void .end method # virtual methods .method public continueLoading(J)Z .locals 18 move-object/from16 v0, p0 .line 1 iget-boolean v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z const/4 v2, 0x0 if-nez v1, :cond_6 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_0 goto :goto_2 .line 2 :cond_0 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource; iget-object v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v3}, Ljava/util/LinkedList;->isEmpty()Z move-result v3 if-eqz v3, :cond_1 const/4 v3, 0x0 goto :goto_0 :cond_1 iget-object v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v3}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object; move-result-object v3 check-cast v3, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; :goto_0 iget-wide v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J const-wide v6, -0x7fffffffffffffffL # -4.9E-324 cmp-long v8, v4, v6 if-eqz v8, :cond_2 goto :goto_1 :cond_2 move-wide/from16 v4, p1 :goto_1 iget-object v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder; invoke-interface {v1, v3, v4, v5, v8}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->getNextChunk(Lcom/google/android/exoplayer2/source/chunk/MediaChunk;JLcom/google/android/exoplayer2/source/chunk/ChunkHolder;)V .line 3 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->nextChunkHolder:Lcom/google/android/exoplayer2/source/chunk/ChunkHolder; iget-boolean v3, v1, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->endOfStream:Z .line 4 iget-object v4, v1, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->chunk:Lcom/google/android/exoplayer2/source/chunk/Chunk; .line 5 invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/chunk/ChunkHolder;->clear()V const/4 v1, 0x1 if-eqz v3, :cond_3 .line 6 iput-boolean v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z return v1 :cond_3 if-nez v4, :cond_4 return v2 .line 7 :cond_4 invoke-direct {v0, v4}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z move-result v2 if-eqz v2, :cond_5 .line 8 iput-wide v6, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J .line 9 move-object v2, v4 check-cast v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; .line 10 iget-object v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunkOutput:Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput; invoke-virtual {v2, v3}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->init(Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput;)V .line 11 iget-object v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v3, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z .line 12 :cond_5 iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader; iget v3, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->minLoadableRetryCount:I invoke-virtual {v2, v4, v0, v3}, 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 v16 .line 13 iget-object v5, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; iget-object v6, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec; iget v7, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I iget v8, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I iget-object v9, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format; iget v10, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I iget-object v11, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object; iget-wide v12, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J iget-wide v14, v4, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J invoke-virtual/range {v5 .. v17}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadStarted(Lcom/google/android/exoplayer2/upstream/DataSpec;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJ)V return v1 :cond_6 :goto_2 return v2 .end method .method public discardUnselectedEmbeddedTracksTo(J)V .locals 3 const/4 v0, 0x0 .line 1 :goto_0 iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v2, v1 if-ge v0, v2, :cond_1 .line 2 iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z aget-boolean v2, v2, v0 if-nez v2, :cond_0 .line 3 aget-object v1, v1, v0 const/4 v2, 0x1 invoke-virtual {v1, p1, p2, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->skipToKeyframeBefore(JZ)Z :cond_0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 return-void .end method .method public getBufferedPositionUs()J .locals 4 .line 1 iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z if-eqz v0, :cond_0 const-wide/high16 v0, -0x8000000000000000L return-wide v0 .line 2 :cond_0 invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z move-result v0 if-eqz v0, :cond_1 .line 3 iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J return-wide v0 .line 4 :cond_1 iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J .line 5 iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v2}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; .line 6 invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/chunk/MediaChunk;->isLoadCompleted()Z move-result v3 if-eqz v3, :cond_2 goto :goto_0 :cond_2 iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; .line 7 invoke-virtual {v2}, Ljava/util/LinkedList;->size()I move-result v2 const/4 v3, 0x1 if-le v2, v3, :cond_3 iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v2}, Ljava/util/LinkedList;->size()I move-result v3 add-int/lit8 v3, v3, -0x2 invoke-virtual {v2, v3}, Ljava/util/LinkedList;->get(I)Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; goto :goto_0 :cond_3 const/4 v2, 0x0 :goto_0 if-eqz v2, :cond_4 .line 8 iget-wide v2, v2, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(JJ)J move-result-wide v0 .line 9 :cond_4 iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->getLargestQueuedTimestampUs()J move-result-wide v2 invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(JJ)J move-result-wide v0 return-wide v0 .end method .method public getChunkSource()Lcom/google/android/exoplayer2/source/chunk/ChunkSource; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation .line 1 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 .locals 2 .line 1 invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z move-result v0 if-eqz v0, :cond_0 .line 2 iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J return-wide v0 .line 3 :cond_0 iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z if-eqz v0, :cond_1 const-wide/high16 v0, -0x8000000000000000L goto :goto_0 :cond_1 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; iget-wide v0, v0, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J :goto_0 return-wide v0 .end method .method public isPendingReset()Z .locals 4 .line 1 iget-wide v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J const-wide v2, -0x7fffffffffffffffL # -4.9E-324 cmp-long v0, v0, v2 if-eqz v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method public isReady()Z .locals 1 .line 1 iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z if-nez v0, :cond_1 invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z move-result v0 if-nez v0, :cond_0 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->isEmpty()Z move-result v0 if-nez v0, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 goto :goto_1 :cond_1 :goto_0 const/4 v0, 0x1 :goto_1 return v0 .end method .method public maybeThrowError()V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 1 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 2 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_0 .line 3 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 :cond_0 return-void .end method .method public onLoadCanceled(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJZ)V .locals 19 move-object/from16 v0, p0 move-object/from16 v1, p1 move-wide/from16 v13, p2 move-wide/from16 v15, p4 .line 2 iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; iget-object v3, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec; iget v4, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I iget v5, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I iget-object v6, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format; iget v7, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I iget-object v8, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object; iget-wide v9, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J iget-wide v11, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J .line 3 invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J move-result-wide v17 .line 4 invoke-virtual/range {v2 .. v18}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadCanceled(Lcom/google/android/exoplayer2/upstream/DataSpec;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJJJ)V if-nez p6, :cond_1 .line 5 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; const/4 v2, 0x1 invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->reset(Z)V .line 6 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v3, v1 const/4 v4, 0x0 :goto_0 if-ge v4, v3, :cond_0 aget-object v5, v1, v4 .line 7 invoke-virtual {v5, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->reset(Z)V add-int/lit8 v4, v4, 0x1 goto :goto_0 .line 8 :cond_0 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback; invoke-interface {v1, v0}, Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V :cond_1 return-void .end method .method public bridge synthetic onLoadCanceled(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJZ)V .locals 0 .line 1 check-cast p1, Lcom/google/android/exoplayer2/source/chunk/Chunk; invoke-virtual/range {p0 .. p6}, 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 .locals 19 move-object/from16 v0, p0 move-object/from16 v1, p1 move-wide/from16 v13, p2 move-wide/from16 v15, p4 .line 2 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 3 iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; iget-object v3, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec; iget v4, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I iget v5, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I iget-object v6, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format; iget v7, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I iget-object v8, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object; iget-wide v9, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J iget-wide v11, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J .line 4 invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J move-result-wide v17 .line 5 invoke-virtual/range {v2 .. v18}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadCompleted(Lcom/google/android/exoplayer2/upstream/DataSpec;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJJJ)V .line 6 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback; invoke-interface {v1, v0}, Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V return-void .end method .method public bridge synthetic onLoadCompleted(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJ)V .locals 0 .line 1 check-cast p1, Lcom/google/android/exoplayer2/source/chunk/Chunk; invoke-virtual/range {p0 .. p5}, 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 .locals 22 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 2 invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J move-result-wide v17 .line 3 invoke-direct/range {p0 .. p1}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z move-result v2 const/4 v3, 0x1 const/4 v15, 0x0 if-eqz v2, :cond_1 const-wide/16 v4, 0x0 cmp-long v4, v17, v4 if-eqz v4, :cond_1 .line 4 iget-object v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v4}, Ljava/util/LinkedList;->size()I move-result v4 if-le v4, v3, :cond_0 goto :goto_0 :cond_0 move v4, v15 goto :goto_1 :cond_1 :goto_0 move v4, v3 .line 5 :goto_1 iget-object v5, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->chunkSource:Lcom/google/android/exoplayer2/source/chunk/ChunkSource; move-object/from16 v13, p6 invoke-interface {v5, v1, v4, v13}, Lcom/google/android/exoplayer2/source/chunk/ChunkSource;->onChunkLoadError(Lcom/google/android/exoplayer2/source/chunk/Chunk;ZLjava/lang/Exception;)Z move-result v4 if-eqz v4, :cond_5 if-eqz v2, :cond_4 .line 6 iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v2}, Ljava/util/LinkedList;->removeLast()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; if-ne v2, v1, :cond_2 move v4, v3 goto :goto_2 :cond_2 move v4, v15 .line 7 :goto_2 invoke-static {v4}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V .line 8 iget-object v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v2, v15}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I move-result v5 invoke-virtual {v4, v5}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->discardUpstreamSamples(I)V move v4, v15 .line 9 :goto_3 iget-object v5, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v6, v5 if-ge v4, v6, :cond_3 .line 10 aget-object v5, v5, v4 add-int/lit8 v4, v4, 0x1 invoke-virtual {v2, v4}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I move-result v6 invoke-virtual {v5, v6}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->discardUpstreamSamples(I)V goto :goto_3 .line 11 :cond_3 iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v2}, Ljava/util/LinkedList;->isEmpty()Z move-result v2 if-eqz v2, :cond_4 .line 12 iget-wide v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J iput-wide v4, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J :cond_4 move/from16 v21, v3 goto :goto_4 :cond_5 move/from16 v21, v15 .line 13 :goto_4 iget-object v2, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->eventDispatcher:Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher; iget-object v3, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec; iget v4, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I iget v5, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primaryTrackType:I iget-object v6, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format; iget v7, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I iget-object v8, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object; iget-wide v9, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J iget-wide v11, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J move-wide/from16 v13, p2 move v1, v15 move-wide/from16 v15, p4 move-object/from16 v19, p6 move/from16 v20, v21 invoke-virtual/range {v2 .. v20}, Lcom/google/android/exoplayer2/source/AdaptiveMediaSourceEventListener$EventDispatcher;->loadError(Lcom/google/android/exoplayer2/upstream/DataSpec;IILcom/google/android/exoplayer2/Format;ILjava/lang/Object;JJJJJLjava/io/IOException;Z)V if-eqz v21, :cond_6 .line 14 iget-object v1, v0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->callback:Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback; invoke-interface {v1, v0}, Lcom/google/android/exoplayer2/source/SequenceableLoader$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V const/4 v1, 0x2 :cond_6 return v1 .end method .method public bridge synthetic onLoadError(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJLjava/io/IOException;)I .locals 0 .line 1 check-cast p1, Lcom/google/android/exoplayer2/source/chunk/Chunk; invoke-virtual/range {p0 .. p6}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->onLoadError(Lcom/google/android/exoplayer2/source/chunk/Chunk;JJLjava/io/IOException;)I move-result p1 return p1 .end method .method public readData(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Z)I .locals 8 .line 1 invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z move-result v0 if-eqz v0, :cond_0 const/4 p1, -0x3 return p1 .line 2 :cond_0 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->getReadIndex()I move-result v0 invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->discardDownstreamMediaChunks(I)V .line 3 iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; iget-boolean v5, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z iget-wide v6, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J move-object v2, p1 move-object v3, p2 move v4, p3 invoke-virtual/range {v1 .. v7}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->readData(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;ZZJ)I move-result p1 return p1 .end method .method public release()V .locals 4 .line 1 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->disable()V .line 2 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v1, v0 const/4 v2, 0x0 :goto_0 if-ge v2, v1, :cond_0 aget-object v3, v0, v2 .line 3 invoke-virtual {v3}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->disable()V add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 4 :cond_0 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;->release()V return-void .end method .method public seekToUs(J)V .locals 5 .line 1 iput-wide p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->lastSeekPositionUs:J .line 2 invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->isPendingReset()Z move-result v0 const/4 v1, 0x0 const/4 v2, 0x1 if-nez v0, :cond_1 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; .line 3 invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->getNextLoadPositionUs()J move-result-wide v3 cmp-long v3, p1, v3 if-gez v3, :cond_0 move v3, v2 goto :goto_0 :cond_0 move v3, v1 .line 4 :goto_0 invoke-virtual {v0, p1, p2, v3}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->skipToKeyframeBefore(JZ)Z move-result v0 if-eqz v0, :cond_1 move v0, v2 goto :goto_1 :cond_1 move v0, v1 :goto_1 if-eqz v0, :cond_3 .line 5 :goto_2 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->size()I move-result v0 if-le v0, v2, :cond_2 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; .line 6 invoke-virtual {v0, v2}, Ljava/util/LinkedList;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk; invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/source/chunk/BaseMediaChunk;->getFirstSampleIndex(I)I move-result v0 iget-object v3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v3}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->getReadIndex()I move-result v3 if-gt v0, v3, :cond_2 .line 7 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object; goto :goto_2 .line 8 :cond_2 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v3, v0 :goto_3 if-ge v1, v3, :cond_5 aget-object v4, v0, v1 .line 9 invoke-virtual {v4, p1, p2, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->skipToKeyframeBefore(JZ)Z add-int/lit8 v1, v1, 0x1 goto :goto_3 .line 10 :cond_3 iput-wide p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->pendingResetPositionUs:J .line 11 iput-boolean v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z .line 12 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->mediaChunks:Ljava/util/LinkedList; invoke-virtual {p1}, Ljava/util/LinkedList;->clear()V .line 13 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader; invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z move-result p1 if-eqz p1, :cond_4 .line 14 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loader:Lcom/google/android/exoplayer2/upstream/Loader; invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/Loader;->cancelLoading()V goto :goto_5 .line 15 :cond_4 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->reset(Z)V .line 16 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length p2, p1 :goto_4 if-ge v1, p2, :cond_5 aget-object v0, p1, v1 .line 17 invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->reset(Z)V add-int/lit8 v1, v1, 0x1 goto :goto_4 :cond_5 :goto_5 return-void .end method .method public selectEmbeddedTrack(JI)Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(JI)", "Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream<", "TT;>.EmbeddedSampleStream;" } .end annotation const/4 v0, 0x0 .line 1 :goto_0 iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; array-length v1, v1 if-ge v0, v1, :cond_1 .line 2 iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTrackTypes:[I aget v1, v1, v0 if-ne v1, p3, :cond_0 .line 3 iget-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z aget-boolean p3, p3, v0 const/4 v1, 0x1 xor-int/2addr p3, v1 invoke-static {p3}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V .line 4 iget-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedTracksSelected:[Z aput-boolean v1, p3, v0 .line 5 iget-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; aget-object p3, p3, v0 invoke-virtual {p3, p1, p2, v1}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->skipToKeyframeBefore(JZ)Z .line 6 new-instance p1, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream; iget-object p2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->embeddedSampleQueues:[Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; aget-object p2, p2, v0 invoke-direct {p1, p0, p0, p2, v0}, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream$EmbeddedSampleStream;->(Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;I)V return-object p1 :cond_0 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 7 :cond_1 new-instance p1, Ljava/lang/IllegalStateException; invoke-direct {p1}, Ljava/lang/IllegalStateException;->()V throw p1 .end method .method public skipData(J)V .locals 2 .line 1 iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->loadingFinished:Z if-eqz v0, :cond_0 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->getLargestQueuedTimestampUs()J move-result-wide v0 cmp-long v0, p1, v0 if-lez v0, :cond_0 .line 2 iget-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; invoke-virtual {p1}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->skipAll()V goto :goto_0 .line 3 :cond_0 iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkSampleStream;->primarySampleQueue:Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput; const/4 v1, 0x1 invoke-virtual {v0, p1, p2, v1}, Lcom/google/android/exoplayer2/extractor/DefaultTrackOutput;->skipToKeyframeBefore(JZ)Z :goto_0 return-void .end method