HlsSampleStreamWrapper.smali
.class final Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;
.super Ljava/lang/Object;
.source "HlsSampleStreamWrapper.java"
# interfaces
.implements Lcom/google/android/exoplayer2/upstream/Loader$Callback;
.implements Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;
.implements Lcom/google/android/exoplayer2/source/SequenceableLoader;
.implements Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.implements Lcom/google/android/exoplayer2/source/SampleQueue$UpstreamFormatChangedListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$PrivTimestampStrippingSampleQueue;,
Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/upstream/Loader$Callback<",
"Lcom/google/android/exoplayer2/source/chunk/Chunk;",
">;",
"Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;",
"Lcom/google/android/exoplayer2/source/SequenceableLoader;",
"Lcom/google/android/exoplayer2/extractor/ExtractorOutput;",
"Lcom/google/android/exoplayer2/source/SampleQueue$UpstreamFormatChangedListener;"
}
.end annotation
# static fields
.field public static final SAMPLE_QUEUE_INDEX_NO_MAPPING_FATAL:I
.field public static final SAMPLE_QUEUE_INDEX_NO_MAPPING_NON_FATAL:I
.field public static final SAMPLE_QUEUE_INDEX_PENDING:I
.field private static final TAG:Ljava/lang/String; = "HlsSampleStreamWrapper"
# instance fields
.field private final allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
.field private audioSampleQueueIndex:I
.field private audioSampleQueueMappingDone:Z
.field private final callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
.field private final chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
.field private chunkUid:I
.field private downstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.field private enabledTrackGroupCount:I
.field private final eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.field private final handler:Landroid/os/Handler;
.field private haveAudioVideoSampleQueues:Z
.field private final hlsSampleStreams:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;",
">;"
}
.end annotation
.end field
.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 private loadingFinished:Z
.field private final maybeFinishPrepareRunnable:Ljava/lang/Runnable;
.field private final mediaChunks:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;",
">;"
}
.end annotation
.end field
.field private final muxedAudioFormat:Lcom/google/android/exoplayer2/Format;
.field private final nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
.field private final onTracksEndedRunnable:Ljava/lang/Runnable;
.field private optionalTrackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.field private pendingResetPositionUs:J
.field private pendingResetUpstreamFormats:Z
.field private prepared:Z
.field private primarySampleQueueIndex:I
.field private primarySampleQueueType:I
.field private primaryTrackGroupIndex:I
.field private final readOnlyMediaChunks:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;",
">;"
}
.end annotation
.end field
.field private released:Z
.field private sampleOffsetUs:J
.field private sampleQueueIsAudioVideoFlags:[Z
.field private sampleQueueTrackIds:[I
.field private sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.field private sampleQueuesBuilt:Z
.field private sampleQueuesEnabledStates:[Z
.field private seenFirstTrackSelection:Z
.field private trackGroupToSampleQueueIndex:[I
.field private trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.field private final trackType:I
.field private tracksEnded:Z
.field private upstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.field private videoSampleQueueIndex:I
.field private videoSampleQueueMappingDone:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, -0x156f
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->SAMPLE_QUEUE_INDEX_NO_MAPPING_FATAL:I
const v0, -0x156e
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->SAMPLE_QUEUE_INDEX_NO_MAPPING_NON_FATAL:I
const v0, -0x1570
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->SAMPLE_QUEUE_INDEX_PENDING:I
return-void
.end method
.method public constructor <init>(ILcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;Lcom/google/android/exoplayer2/upstream/Allocator;JLcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;)V
.registers 12
.param p1, "trackType" # I
.param p2, "callback" # Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
.param p3, "chunkSource" # Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
.param p4, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p5, "positionUs" # J
.param p7, "muxedAudioFormat" # Lcom/google/android/exoplayer2/Format;
.param p8, "loadErrorHandlingPolicy" # Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.param p9, "eventDispatcher" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 158
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 159
iput p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackType:I
.line 160
iput-object p2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
.line 161
iput-object p3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
.line 162
iput-object p4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
.line 163
iput-object p7, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->muxedAudioFormat:Lcom/google/android/exoplayer2/Format;
.line 164
iput-object p8, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.line 165
iput-object p9, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 166
new-instance v0, Lcom/google/android/exoplayer2/upstream/Loader;
const-string v1, "Loader:HlsSampleStreamWrapper"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/upstream/Loader;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 167
new-instance v0, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
invoke-direct {v0}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
.line 168
const/4 v0, 0x0
new-array v1, v0, [I
iput-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
.line 169
const/4 v1, -0x1
iput v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueIndex:I
.line 170
iput v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueIndex:I
.line 171
new-array v1, v0, [Lcom/google/android/exoplayer2/source/SampleQueue;
iput-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.line 172
new-array v1, v0, [Z
iput-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueIsAudioVideoFlags:[Z
.line 173
new-array v0, v0, [Z
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
.line 174
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
.line 175
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->readOnlyMediaChunks:Ljava/util/List;
.line 176
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->hlsSampleStreams:Ljava/util/ArrayList;
.line 177
new-instance v0, Lcom/google/android/exoplayer2/source/hls/-$$Lambda$HlsSampleStreamWrapper$8JyeEr0irIOShv9LlAxAmgzl5vY;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/hls/-$$Lambda$HlsSampleStreamWrapper$8JyeEr0irIOShv9LlAxAmgzl5vY;-><init>(Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->maybeFinishPrepareRunnable:Ljava/lang/Runnable;
.line 178
new-instance v0, Lcom/google/android/exoplayer2/source/hls/-$$Lambda$HlsSampleStreamWrapper$afhkI3tagC_-MAOTh7FzBWzQsno;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/hls/-$$Lambda$HlsSampleStreamWrapper$afhkI3tagC_-MAOTh7FzBWzQsno;-><init>(Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->onTracksEndedRunnable:Ljava/lang/Runnable;
.line 179
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->handler:Landroid/os/Handler;
.line 180
iput-wide p5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
.line 181
iput-wide p5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.line 182
return-void
.end method
.method private buildTracksFromSampleStreams()V
.registers 14
.line 957
const/4 v0, 0x6
.line 958
.local v0, "primaryExtractorTrackType":I
const/4 v1, -0x1
.line 959
.local v1, "primaryExtractorTrackIndex":I
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v2
.line 960
.local v2, "extractorTrackCount":I
const/4 v3, 0x0
.local v3, "i":I
:goto_6
const/4 v4, -0x1
if-ge v3, v2, :cond_41
.line 961
iget-object v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v5, v5, v3
invoke-virtual {v5}, Lcom/google/android/exoplayer2/source/SampleQueue;->getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
move-result-object v5
iget-object v5, v5, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 963
.local v5, "sampleMimeType":Ljava/lang/String;
invoke-static {v5}, Lcom/google/android/exoplayer2/util/MimeTypes;->isVideo(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_1b
.line 964
const/4 v6, 0x2
.local v6, "trackType":I
goto :goto_2c
.line 965
.end local v6 # "trackType":I
:cond_1b
invoke-static {v5}, Lcom/google/android/exoplayer2/util/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_23
.line 966
const/4 v6, 0x1
.restart local v6 # "trackType":I
goto :goto_2c
.line 967
.end local v6 # "trackType":I
:cond_23
invoke-static {v5}, Lcom/google/android/exoplayer2/util/MimeTypes;->isText(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_2b
.line 968
const/4 v6, 0x3
.restart local v6 # "trackType":I
goto :goto_2c
.line 970
.end local v6 # "trackType":I
:cond_2b
const/4 v6, 0x6
.line 972
.restart local v6 # "trackType":I
:goto_2c
invoke-static {v6}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getTrackTypeScore(I)I
move-result v7
invoke-static {v0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getTrackTypeScore(I)I
move-result v8
if-le v7, v8, :cond_39
.line 973
move v0, v6
.line 974
move v1, v3
goto :goto_3e
.line 975
:cond_39
if-ne v6, v0, :cond_3e
if-eq v1, v4, :cond_3e
.line 979
const/4 v1, -0x1
.line 960
.end local v5 # "sampleMimeType":Ljava/lang/String;
.end local v6 # "trackType":I
:cond_3e
:goto_3e
add-int/lit8 v3, v3, 0x1
goto :goto_6
.line 983
.end local v3 # "i":I
:cond_41
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v3
.line 984
.local v3, "chunkSourceTrackGroup":Lcom/google/android/exoplayer2/source/TrackGroup;
iget v5, v3, Lcom/google/android/exoplayer2/source/TrackGroup;->length:I
.line 987
.local v5, "chunkSourceTrackCount":I
iput v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primaryTrackGroupIndex:I
.line 988
new-array v4, v2, [I
iput-object v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
.line 989
const/4 v4, 0x0
.local v4, "i":I
:goto_50
if-ge v4, v2, :cond_59
.line 990
iget-object v6, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
aput v4, v6, v4
.line 989
add-int/lit8 v4, v4, 0x1
goto :goto_50
.line 994
.end local v4 # "i":I
:cond_59
new-array v4, v2, [Lcom/google/android/exoplayer2/source/TrackGroup;
.line 995
.local v4, "trackGroups":[Lcom/google/android/exoplayer2/source/TrackGroup;
const/4 v6, 0x0
.local v6, "i":I
:goto_5c
const/4 v7, 0x0
const/4 v8, 0x1
if-ge v6, v2, :cond_b4
.line 996
iget-object v9, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v9, v9, v6
invoke-virtual {v9}, Lcom/google/android/exoplayer2/source/SampleQueue;->getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
move-result-object v9
.line 997
.local v9, "sampleFormat":Lcom/google/android/exoplayer2/Format;
if-ne v6, v1, :cond_93
.line 998
new-array v10, v5, [Lcom/google/android/exoplayer2/Format;
.line 999
.local v10, "formats":[Lcom/google/android/exoplayer2/Format;
if-ne v5, v8, :cond_79
.line 1000
invoke-virtual {v3, v7}, Lcom/google/android/exoplayer2/source/TrackGroup;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v8
invoke-virtual {v9, v8}, Lcom/google/android/exoplayer2/Format;->copyWithManifestFormatInfo(Lcom/google/android/exoplayer2/Format;)Lcom/google/android/exoplayer2/Format;
move-result-object v8
aput-object v8, v10, v7
goto :goto_89
.line 1002
:cond_79
const/4 v7, 0x0
.local v7, "j":I
:goto_7a
if-ge v7, v5, :cond_89
.line 1003
invoke-virtual {v3, v7}, Lcom/google/android/exoplayer2/source/TrackGroup;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v11
invoke-static {v11, v9, v8}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->deriveFormat(Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/Format;Z)Lcom/google/android/exoplayer2/Format;
move-result-object v11
aput-object v11, v10, v7
.line 1002
add-int/lit8 v7, v7, 0x1
goto :goto_7a
.line 1006
.end local v7 # "j":I
:cond_89
:goto_89
new-instance v7, Lcom/google/android/exoplayer2/source/TrackGroup;
invoke-direct {v7, v10}, Lcom/google/android/exoplayer2/source/TrackGroup;-><init>([Lcom/google/android/exoplayer2/Format;)V
aput-object v7, v4, v6
.line 1007
iput v6, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primaryTrackGroupIndex:I
.line 1008
.end local v10 # "formats":[Lcom/google/android/exoplayer2/Format;
goto :goto_b1
.line 1009
:cond_93
const/4 v10, 0x2
if-ne v0, v10, :cond_a1
iget-object v10, v9, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 1011
invoke-static {v10}, Lcom/google/android/exoplayer2/util/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v10
if-eqz v10, :cond_a1
iget-object v10, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->muxedAudioFormat:Lcom/google/android/exoplayer2/Format;
goto :goto_a2
:cond_a1
const/4 v10, 0x0
.line 1014
.local v10, "trackFormat":Lcom/google/android/exoplayer2/Format;
:goto_a2
new-instance v11, Lcom/google/android/exoplayer2/source/TrackGroup;
new-array v8, v8, [Lcom/google/android/exoplayer2/Format;
invoke-static {v10, v9, v7}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->deriveFormat(Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/Format;Z)Lcom/google/android/exoplayer2/Format;
move-result-object v12
aput-object v12, v8, v7
invoke-direct {v11, v8}, Lcom/google/android/exoplayer2/source/TrackGroup;-><init>([Lcom/google/android/exoplayer2/Format;)V
aput-object v11, v4, v6
.line 995
.end local v9 # "sampleFormat":Lcom/google/android/exoplayer2/Format;
.end local v10 # "trackFormat":Lcom/google/android/exoplayer2/Format;
:goto_b1
add-int/lit8 v6, v6, 0x1
goto :goto_5c
.line 1017
.end local v6 # "i":I
:cond_b4
new-instance v6, Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-direct {v6, v4}, Lcom/google/android/exoplayer2/source/TrackGroupArray;-><init>([Lcom/google/android/exoplayer2/source/TrackGroup;)V
iput-object v6, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 1018
iget-object v6, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->optionalTrackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
if-nez v6, :cond_c0
const/4 v7, 0x1
:cond_c0
invoke-static {v7}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 1019
sget-object v6, Lcom/google/android/exoplayer2/source/TrackGroupArray;->EMPTY:Lcom/google/android/exoplayer2/source/TrackGroupArray;
iput-object v6, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->optionalTrackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 1020
return-void
.end method
.method private static createDummyTrackOutput(II)Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
.registers 4
.param p0, "id" # I
.param p1, "type" # I
.line 1129
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Unmapped track with id "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " of type "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "HlsSampleStreamWrapper"
invoke-static {v1, v0}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1130
new-instance v0, Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;-><init>()V
return-object v0
.end method
.method private static deriveFormat(Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/Format;Z)Lcom/google/android/exoplayer2/Format;
.registers 16
.param p0, "playlistFormat" # Lcom/google/android/exoplayer2/Format;
.param p1, "sampleFormat" # Lcom/google/android/exoplayer2/Format;
.param p2, "propagateBitrate" # Z
.line 1086
if-nez p0, :cond_3
.line 1087
return-object p1
.line 1089
:cond_3
if-eqz p2, :cond_9
iget v0, p0, Lcom/google/android/exoplayer2/Format;->bitrate:I
move v6, v0
goto :goto_b
:cond_9
const/4 v0, -0x1
const/4 v6, -0x1
.line 1090
.local v6, "bitrate":I
:goto_b
iget-object v0, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackType(Ljava/lang/String;)I
move-result v0
.line 1091
.local v0, "sampleTrackType":I
iget-object v1, p0, Lcom/google/android/exoplayer2/Format;->codecs:Ljava/lang/String;
invoke-static {v1, v0}, Lcom/google/android/exoplayer2/util/Util;->getCodecsOfType(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v11
.line 1092
.local v11, "codecs":Ljava/lang/String;
invoke-static {v11}, Lcom/google/android/exoplayer2/util/MimeTypes;->getMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 1093
.local v1, "mimeType":Ljava/lang/String;
if-nez v1, :cond_21
.line 1094
iget-object v1, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
move-object v12, v1
goto :goto_22
.line 1093
:cond_21
move-object v12, v1
.line 1096
.end local v1 # "mimeType":Ljava/lang/String;
.local v12, "mimeType":Ljava/lang/String;
:goto_22
iget-object v2, p0, Lcom/google/android/exoplayer2/Format;->id:Ljava/lang/String;
iget-object v3, p0, Lcom/google/android/exoplayer2/Format;->label:Ljava/lang/String;
iget v7, p0, Lcom/google/android/exoplayer2/Format;->width:I
iget v8, p0, Lcom/google/android/exoplayer2/Format;->height:I
iget v9, p0, Lcom/google/android/exoplayer2/Format;->selectionFlags:I
iget-object v10, p0, Lcom/google/android/exoplayer2/Format;->language:Ljava/lang/String;
move-object v1, p1
move-object v4, v12
move-object v5, v11
invoke-virtual/range {v1 .. v10}, Lcom/google/android/exoplayer2/Format;->copyWithContainerInfo(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;)Lcom/google/android/exoplayer2/Format;
move-result-object v1
return-object v1
.end method
.method private finishedReadingChunk(Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;)Z
.registers 6
.param p1, "chunk" # Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.line 863
iget v0, p1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->uid:I
.line 864
.local v0, "chunkUid":I
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v1
.line 865
.local v1, "sampleQueueCount":I
const/4 v2, 0x0
.local v2, "i":I
:goto_6
if-ge v2, v1, :cond_1d
.line 866
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
aget-boolean v3, v3, v2
if-eqz v3, :cond_1a
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v3, v3, v2
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->peekSourceId()I
move-result v3
if-ne v3, v0, :cond_1a
.line 867
const/4 v3, 0x0
return v3
.line 865
:cond_1a
add-int/lit8 v2, v2, 0x1
goto :goto_6
.line 870
.end local v2 # "i":I
:cond_1d
const/4 v2, 0x1
return v2
.end method
.method private static formatsMatch(Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/Format;)Z
.registers 9
.param p0, "manifestFormat" # Lcom/google/android/exoplayer2/Format;
.param p1, "sampleFormat" # Lcom/google/android/exoplayer2/Format;
.line 1113
iget-object v0, p0, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 1114
.local v0, "manifestFormatMimeType":Ljava/lang/String;
iget-object v1, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 1115
.local v1, "sampleFormatMimeType":Ljava/lang/String;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackType(Ljava/lang/String;)I
move-result v2
.line 1116
.local v2, "manifestFormatTrackType":I
const/4 v3, 0x1
const/4 v4, 0x0
const/4 v5, 0x3
if-eq v2, v5, :cond_16
.line 1117
invoke-static {v1}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackType(Ljava/lang/String;)I
move-result v5
if-ne v2, v5, :cond_14
goto :goto_15
:cond_14
const/4 v3, 0x0
:goto_15
return v3
.line 1118
:cond_16
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_1d
.line 1119
return v4
.line 1121
:cond_1d
const-string v5, "application/cea-608"
invoke-virtual {v5, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_2f
.line 1122
const-string v5, "application/cea-708"
invoke-virtual {v5, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_2e
goto :goto_2f
.line 1125
:cond_2e
return v3
.line 1123
:cond_2f
:goto_2f
iget v5, p0, Lcom/google/android/exoplayer2/Format;->accessibilityChannel:I
iget v6, p1, Lcom/google/android/exoplayer2/Format;->accessibilityChannel:I
if-ne v5, v6, :cond_36
goto :goto_37
:cond_36
const/4 v3, 0x0
:goto_37
return v3
.end method
.method private getLastMediaChunk()Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.registers 3
.line 1023
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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/hls/HlsMediaChunk;
return-object v0
.end method
.method private static getTrackTypeScore(I)I
.registers 4
.param p0, "trackType" # I
.line 1062
const/4 v0, 0x2
const/4 v1, 0x1
if-eq p0, v1, :cond_d
const/4 v2, 0x3
if-eq p0, v0, :cond_c
if-eq p0, v2, :cond_b
.line 1070
const/4 v0, 0x0
return v0
.line 1068
:cond_b
return v1
.line 1064
:cond_c
return v2
.line 1066
:cond_d
return v0
.end method
.method private static isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
.registers 2
.param p0, "chunk" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.line 1109
instance-of v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
return v0
.end method
.method private isPendingReset()Z
.registers 6
.line 1027
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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 static synthetic lambda$8JyeEr0irIOShv9LlAxAmgzl5vY(Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;)V
.registers 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->maybeFinishPrepare()V
return-void
.end method
.method public static synthetic lambda$afhkI3tagC_-MAOTh7FzBWzQsno(Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;)V
.registers 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->onTracksEnded()V
return-void
.end method
.method private mapSampleQueuesToMatchTrackGroups()V
.registers 8
.line 907
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
iget v0, v0, Lcom/google/android/exoplayer2/source/TrackGroupArray;->length:I
.line 908
.local v0, "trackGroupCount":I
new-array v1, v0, [I
iput-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
.line 909
const/4 v2, -0x1
invoke-static {v1, v2}, Ljava/util/Arrays;->fill([II)V
.line 910
const/4 v1, 0x0
.local v1, "i":I
:goto_d
if-ge v1, v0, :cond_37
.line 911
const/4 v2, 0x0
.local v2, "queueIndex":I
:goto_10
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v4, v3
if-ge v2, v4, :cond_34
.line 912
aget-object v3, v3, v2
.line 913
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
move-result-object v4
iget-object v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-virtual {v5, v1}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->get(I)Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v5
const/4 v6, 0x0
invoke-virtual {v5, v6}, Lcom/google/android/exoplayer2/source/TrackGroup;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v5
invoke-static {v4, v5}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->formatsMatch(Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/Format;)Z
move-result v4
if-eqz v4, :cond_31
.line 914
iget-object v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
aput v2, v4, v1
.line 915
goto :goto_34
.line 911
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_31
add-int/lit8 v2, v2, 0x1
goto :goto_10
.line 910
.end local v2 # "queueIndex":I
:cond_34
:goto_34
add-int/lit8 v1, v1, 0x1
goto :goto_d
.line 919
.end local v1 # "i":I
:cond_37
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->hlsSampleStreams:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_3d
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_4d
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
.line 920
.local v2, "sampleStream":Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;->bindSampleQueue()V
.line 921
.end local v2 # "sampleStream":Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
goto :goto_3d
.line 922
:cond_4d
return-void
.end method
.method private maybeFinishPrepare()V
.registers 6
.line 886
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->released:Z
if-nez v0, :cond_33
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
if-nez v0, :cond_33
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
if-nez v0, :cond_d
goto :goto_33
.line 889
:cond_d
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
:goto_11
if-ge v2, v1, :cond_1f
aget-object v3, v0, v2
.line 890
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
move-result-object v4
if-nez v4, :cond_1c
.line 891
return-void
.line 889
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_1c
add-int/lit8 v2, v2, 0x1
goto :goto_11
.line 894
:cond_1f
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
if-eqz v0, :cond_27
.line 897
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mapSampleQueuesToMatchTrackGroups()V
goto :goto_32
.line 900
:cond_27
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->buildTracksFromSampleStreams()V
.line 901
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
.line 902
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;->onPrepared()V
.line 904
:goto_32
return-void
.line 887
:cond_33
:goto_33
return-void
.end method
.method private onTracksEnded()V
.registers 2
.line 881
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
.line 882
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->maybeFinishPrepare()V
.line 883
return-void
.end method
.method private resetSampleQueues()V
.registers 7
.line 874
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_5
if-ge v3, v1, :cond_11
aget-object v4, v0, v3
.line 875
.local v4, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
iget-boolean v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetUpstreamFormats:Z
invoke-virtual {v4, v5}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset(Z)V
.line 874
.end local v4 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v3, v3, 0x1
goto :goto_5
.line 877
:cond_11
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetUpstreamFormats:Z
.line 878
return-void
.end method
.method private seekInsideBufferUs(J)Z
.registers 10
.param p1, "positionUs" # J
.line 1037
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v0, v0
.line 1038
.local v0, "sampleQueueCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_4
const/4 v2, 0x1
if-ge v1, v0, :cond_28
.line 1039
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v3, v3, v1
.line 1040
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 1041
const/4 v4, 0x0
invoke-virtual {v3, p1, p2, v2, v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v5
const/4 v6, -0x1
if-eq v5, v6, :cond_17
goto :goto_18
:cond_17
const/4 v2, 0x0
.line 1047
.local v2, "seekInsideQueue":Z
:goto_18
if-nez v2, :cond_25
iget-object v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueIsAudioVideoFlags:[Z
aget-boolean v5, v5, v1
if-nez v5, :cond_24
iget-boolean v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->haveAudioVideoSampleQueues:Z
if-nez v5, :cond_25
.line 1048
:cond_24
return v4
.line 1038
.end local v2 # "seekInsideQueue":Z
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_25
add-int/lit8 v1, v1, 0x1
goto :goto_4
.line 1051
.end local v1 # "i":I
:cond_28
return v2
.end method
.method private updateSampleStreams([Lcom/google/android/exoplayer2/source/SampleStream;)V
.registers 7
.param p1, "streams" # [Lcom/google/android/exoplayer2/source/SampleStream;
.line 854
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->hlsSampleStreams:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 855
array-length v0, p1
const/4 v1, 0x0
:goto_7
if-ge v1, v0, :cond_18
aget-object v2, p1, v1
.line 856
.local v2, "stream":Lcom/google/android/exoplayer2/source/SampleStream;
if-eqz v2, :cond_15
.line 857
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->hlsSampleStreams:Ljava/util/ArrayList;
move-object v4, v2
check-cast v4, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
invoke-virtual {v3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 855
.end local v2 # "stream":Lcom/google/android/exoplayer2/source/SampleStream;
:cond_15
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 860
:cond_18
return-void
.end method
# virtual methods
.method public bindSampleQueueToSampleStream(I)I
.registers 7
.param p1, "trackGroupIndex" # I
.line 218
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
aget v0, v0, p1
.line 219
.local v0, "sampleQueueIndex":I
const/4 v1, -0x2
const/4 v2, -0x1
if-ne v0, v2, :cond_19
.line 220
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->optionalTrackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
iget-object v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-virtual {v4, p1}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->get(I)Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v4
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->indexOf(Lcom/google/android/exoplayer2/source/TrackGroup;)I
move-result v3
if-ne v3, v2, :cond_17
goto :goto_18
:cond_17
const/4 v1, -0x3
:goto_18
return v1
.line 224
:cond_19
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
aget-boolean v3, v2, v0
if-eqz v3, :cond_20
.line 226
return v1
.line 228
:cond_20
const/4 v1, 0x1
aput-boolean v1, v2, v0
.line 229
return v0
.end method
.method public continueLoading(J)Z
.registers 30
.param p1, "positionUs" # J
.line 547
move-object/from16 v0, p0
iget-boolean v1, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
const/4 v2, 0x0
if-nez v1, :cond_b4
iget-object v1, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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_b4
.line 553
:cond_11
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v1
if-eqz v1, :cond_1e
.line 554
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v1
.line 555
.local v1, "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;>;"
iget-wide v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.local v3, "loadPositionUs":J
goto :goto_37
.line 557
.end local v1 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;>;"
.end local v3 # "loadPositionUs":J
:cond_1e
iget-object v1, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->readOnlyMediaChunks:Ljava/util/List;
.line 558
.restart local v1 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;>;"
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
move-result-object v3
.line 559
.local v3, "lastMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
nop
.line 560
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->isLoadCompleted()Z
move-result v4
if-eqz v4, :cond_2e
iget-wide v4, v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->endTimeUs:J
goto :goto_36
:cond_2e
iget-wide v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
iget-wide v6, v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->startTimeUs:J
.line 562
invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->max(JJ)J
move-result-wide v4
:goto_36
move-wide v3, v4
.line 564
.local v3, "loadPositionUs":J
:goto_37
iget-object v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
iget-object v12, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
move-wide/from16 v7, p1
move-wide v9, v3
move-object v11, v1
invoke-virtual/range {v6 .. v12}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->getNextChunk(JJLjava/util/List;Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;)V
.line 565
iget-object v5, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
iget-boolean v5, v5, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;->endOfStream:Z
.line 566
.local v5, "endOfStream":Z
iget-object v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
iget-object v6, v6, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;->chunk:Lcom/google/android/exoplayer2/source/chunk/Chunk;
.line 567
.local v6, "loadable":Lcom/google/android/exoplayer2/source/chunk/Chunk;
iget-object v7, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
iget-object v7, v7, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;->playlist:Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;
.line 568
.local v7, "playlistToLoad":Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->nextChunkHolder:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;
invoke-virtual {v8}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource$HlsChunkHolder;->clear()V
.line 570
const-wide v8, -0x7fffffffffffffffL # -4.9E-324
const/4 v10, 0x1
if-eqz v5, :cond_60
.line 571
iput-wide v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.line 572
iput-boolean v10, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
.line 573
return v10
.line 576
:cond_60
if-nez v6, :cond_6a
.line 577
if-eqz v7, :cond_69
.line 578
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
invoke-interface {v8, v7}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;->onPlaylistRefreshRequired(Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;)V
.line 580
:cond_69
return v2
.line 583
:cond_6a
invoke-static {v6}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
move-result v2
if-eqz v2, :cond_81
.line 584
iput-wide v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.line 585
move-object v2, v6
check-cast v2, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.line 586
.local v2, "mediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
invoke-virtual {v2, v0}, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->init(Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;)V
.line 587
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v8, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 588
iget-object v8, v2, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iput-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->upstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.line 590
.end local v2 # "mediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
:cond_81
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v9, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
.line 592
invoke-interface {v8, v9}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getMinimumLoadableRetryCount(I)I
move-result v8
.line 591
invoke-virtual {v2, v6, 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 593
.local v8, "elapsedRealtimeMs":J
iget-object v11, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v12, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v13, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
iget v14, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackType:I
iget-object v15, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iget v2, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I
iget-object v10, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object;
move-object/from16 v24, v1
.end local v1 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;>;"
.local v24, "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;>;"
iget-wide v0, v6, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J
move-wide/from16 v25, v3
.end local v3 # "loadPositionUs":J
.local v25, "loadPositionUs":J
iget-wide v3, v6, 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 603
const/4 v0, 0x1
return v0
.line 548
.end local v5 # "endOfStream":Z
.end local v6 # "loadable":Lcom/google/android/exoplayer2/source/chunk/Chunk;
.end local v7 # "playlistToLoad":Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;
.end local v8 # "elapsedRealtimeMs":J
.end local v24 # "chunkQueue":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;>;"
.end local v25 # "loadPositionUs":J
:cond_b4
:goto_b4
return v2
.end method
.method public continuePreparing()V
.registers 3
.line 185
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
if-nez v0, :cond_9
.line 186
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
invoke-virtual {p0, v0, v1}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->continueLoading(J)Z
.line 188
:cond_9
return-void
.end method
.method public discardBuffer(JZ)V
.registers 8
.param p1, "positionUs" # J
.param p3, "toKeyframe" # Z
.line 373
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
if-eqz v0, :cond_20
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_b
goto :goto_20
.line 376
:cond_b
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v0, v0
.line 377
.local v0, "sampleQueueCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_f
if-ge v1, v0, :cond_1f
.line 378
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v2, v2, v1
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
aget-boolean v3, v3, v1
invoke-virtual {v2, p1, p2, p3, v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardTo(JZZ)V
.line 377
add-int/lit8 v1, v1, 0x1
goto :goto_f
.line 380
.end local v1 # "i":I
:cond_1f
return-void
.line 374
.end local v0 # "sampleQueueCount":I
:cond_20
:goto_20
return-void
.end method
.method public endTracks()V
.registers 3
.line 826
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->tracksEnded:Z
.line 827
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->onTracksEndedRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 828
return-void
.end method
.method public getBufferedPositionUs()J
.registers 11
.line 514
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
if-eqz v0, :cond_7
.line 515
const-wide/high16 v0, -0x8000000000000000L
return-wide v0
.line 516
:cond_7
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_10
.line 517
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
return-wide v0
.line 519
:cond_10
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
.line 520
.local v0, "bufferedPositionUs":J
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
move-result-object v2
.line 521
.local v2, "lastMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->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/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
.line 522
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/hls/HlsSampleStreamWrapper;->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/hls/HlsMediaChunk;
goto :goto_37
:cond_36
const/4 v3, 0x0
:goto_37
nop
.line 523
.local v3, "lastCompletedMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
if-eqz v3, :cond_40
.line 524
iget-wide v4, v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->endTimeUs:J
invoke-static {v0, v1, v4, v5}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
.line 526
:cond_40
iget-boolean v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
if-eqz v4, :cond_58
.line 527
iget-object v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v5, v4
const/4 v6, 0x0
:goto_48
if-ge v6, v5, :cond_58
aget-object v7, v4, v6
.line 528
.local v7, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
nop
.line 529
invoke-virtual {v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v8
invoke-static {v0, v1, v8, v9}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
.line 527
.end local v7 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v6, v6, 0x1
goto :goto_48
.line 532
:cond_58
return-wide v0
.end method
.method public getNextLoadPositionUs()J
.registers 3
.line 538
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_9
.line 539
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
return-wide v0
.line 541
:cond_9
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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/hls/HlsSampleStreamWrapper;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
move-result-object v0
iget-wide v0, v0, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->endTimeUs:J
:goto_16
return-wide v0
.end method
.method public getTrackGroups()Lcom/google/android/exoplayer2/source/TrackGroupArray;
.registers 2
.line 214
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
return-object v0
.end method
.method public init(IZZ)V
.registers 9
.param p1, "chunkUid" # I
.param p2, "shouldSpliceIn" # Z
.param p3, "reusingExtractor" # Z
.line 739
const/4 v0, 0x0
if-nez p3, :cond_7
.line 740
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueMappingDone:Z
.line 741
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueMappingDone:Z
.line 743
:cond_7
iput p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkUid:I
.line 744
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v1
const/4 v3, 0x0
:goto_d
if-ge v3, v2, :cond_17
aget-object v4, v1, v3
.line 745
.local v4, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v4, p1}, Lcom/google/android/exoplayer2/source/SampleQueue;->sourceId(I)V
.line 744
.end local v4 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v3, v3, 0x1
goto :goto_d
.line 747
:cond_17
if-eqz p2, :cond_26
.line 748
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v1
:goto_1c
if-ge v0, v2, :cond_26
aget-object v3, v1, v0
.line 749
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->splice()V
.line 748
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v0, v0, 0x1
goto :goto_1c
.line 752
:cond_26
return-void
.end method
.method public isReady(I)Z
.registers 3
.param p1, "sampleQueueIndex" # I
.line 445
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
if-nez v0, :cond_17
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
if-nez v0, :cond_15
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v0, v0, p1
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->hasNextSample()Z
move-result v0
if-eqz v0, :cond_15
goto :goto_17
:cond_15
const/4 v0, 0x0
goto :goto_18
:cond_17
:goto_17
const/4 v0, 0x1
:goto_18
return v0
.end method
.method public maybeThrowError()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 449
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->maybeThrowError()V
.line 450
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->maybeThrowError()V
.line 451
return-void
.end method
.method public maybeThrowPrepareError()V
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 210
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->maybeThrowError()V
.line 211
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
move-object/from16 v0, p0
move-object/from16 v1, p1
move-wide/from16 v15, p2
move-wide/from16 v17, p4
.line 640
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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 642
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getUri()Landroid/net/Uri;
move-result-object v4
.line 643
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/hls/HlsSampleStreamWrapper;->trackType: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 653
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J
move-result-wide v19
.line 640
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 654
if-nez p6, :cond_37
.line 655
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->resetSampleQueues()V
.line 656
iget v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
if-lez v2, :cond_37
.line 657
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
invoke-interface {v2, v0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 660
:cond_37
return-void
.end method
.method public bridge synthetic onLoadCanceled(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJZ)V
.registers 14
.line 60
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/hls/HlsSampleStreamWrapper;->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
move-object/from16 v0, p0
move-object/from16 v1, p1
move-wide/from16 v15, p2
move-wide/from16 v17, p4
.line 615
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v2, v1}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->onChunkLoadCompleted(Lcom/google/android/exoplayer2/source/chunk/Chunk;)V
.line 616
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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 618
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getUri()Landroid/net/Uri;
move-result-object v4
.line 619
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/hls/HlsSampleStreamWrapper;->trackType: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 629
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J
move-result-wide v19
.line 616
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 630
iget-boolean v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
if-nez v2, :cond_38
.line 631
iget-wide v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
invoke-virtual {v0, v2, v3}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->continueLoading(J)Z
goto :goto_3d
.line 633
:cond_38
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
invoke-interface {v2, v0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 635
:goto_3d
return-void
.end method
.method public bridge synthetic onLoadCompleted(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;JJ)V
.registers 12
.line 60
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/hls/HlsSampleStreamWrapper;->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 38
.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 669
move-object/from16 v0, p0
move-object/from16 v1, p1
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->bytesLoaded()J
move-result-wide v23
.line 670
.local v23, "bytesLoaded":J
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isMediaChunk(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
move-result v25
.line 671
.local v25, "isMediaChunk":Z
const/4 v2, 0x0
.line 674
.local v2, "blacklistSucceeded":Z
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v4, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
.line 675
move-wide/from16 v5, p4
move-object/from16 v7, p6
move/from16 v8, p7
invoke-interface/range {v3 .. v8}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getBlacklistDurationMsFor(IJLjava/io/IOException;I)J
move-result-wide v13
.line 677
.local v13, "blacklistDurationMs":J
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
cmp-long v5, v13, v3
if-eqz v5, :cond_2d
.line 678
iget-object v5, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v5, v1, v13, v14}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->maybeBlacklistTrack(Lcom/google/android/exoplayer2/source/chunk/Chunk;J)Z
move-result v2
move/from16 v26, v2
goto :goto_2f
.line 677
:cond_2d
move/from16 v26, v2
.line 681
.end local v2 # "blacklistSucceeded":Z
.local v26, "blacklistSucceeded":Z
:goto_2f
const/4 v2, 0x0
const/4 v5, 0x1
if-eqz v26, :cond_5f
.line 682
if-eqz v25, :cond_5a
const-wide/16 v3, 0x0
cmp-long v6, v23, v3
if-nez v6, :cond_5a
.line 683
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v4
sub-int/2addr v4, v5
invoke-virtual {v3, v4}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.line 684
.local v3, "removed":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
if-ne v3, v1, :cond_4b
const/4 v2, 0x1
:cond_4b
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 685
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z
move-result v2
if-eqz v2, :cond_5a
.line 686
iget-wide v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
iput-wide v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.line 689
.end local v3 # "removed":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
:cond_5a
sget-object v2, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-object/from16 v27, v2
.local v2, "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
goto :goto_7a
.line 691
.end local v2 # "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:cond_5f
iget-object v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v7, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
.line 692
move-wide/from16 v8, p4
move-object/from16 v10, p6
move/from16 v11, p7
invoke-interface/range {v6 .. v11}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getRetryDelayMsFor(IJLjava/io/IOException;I)J
move-result-wide v6
.line 694
.local v6, "retryDelayMs":J
cmp-long v8, v6, v3
if-eqz v8, :cond_76
.line 696
invoke-static {v2, v6, v7}, Lcom/google/android/exoplayer2/upstream/Loader;->createRetryAction(ZJ)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-result-object v2
goto :goto_78
:cond_76
sget-object v2, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY_FATAL:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_78
move-object/from16 v27, v2
.line 700
.end local v6 # "retryDelayMs":J
.local v27, "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_7a
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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 702
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getUri()Landroid/net/Uri;
move-result-object v4
.line 703
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/chunk/Chunk;->getResponseHeaders()Ljava/util/Map;
move-result-object v6
iget v7, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->type:I
iget v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackType:I
iget-object v9, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
iget v10, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionReason:I
iget-object v11, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->trackSelectionData:Ljava/lang/Object;
move-object v15, v6
iget-wide v5, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->startTimeUs:J
move-wide/from16 v16, v13
.end local v13 # "blacklistDurationMs":J
.local v16, "blacklistDurationMs":J
iget-wide v13, v1, Lcom/google/android/exoplayer2/source/chunk/Chunk;->endTimeUs:J
.line 715
invoke-virtual/range {v27 .. v27}, Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;->isRetry()Z
move-result v18
const/4 v12, 0x1
.line 700
xor-int/lit8 v22, v18, 0x1
move-wide/from16 v18, v5
move-object v5, v15
move v6, v7
move v7, v8
move-object v8, v9
move v9, v10
move-object v10, v11
move-wide/from16 v11, v18
move-wide/from16 v28, v16
.end local v16 # "blacklistDurationMs":J
.local v28, "blacklistDurationMs":J
move-wide/from16 v15, p2
move-wide/from16 v17, p4
move-wide/from16 v19, v23
move-object/from16 v21, p6
invoke-virtual/range {v2 .. v22}, 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 717
if-eqz v26, :cond_c6
.line 718
iget-boolean v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
if-nez v2, :cond_c1
.line 719
iget-wide v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
invoke-virtual {v0, v2, v3}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->continueLoading(J)Z
goto :goto_c6
.line 721
:cond_c1
iget-object v2, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
invoke-interface {v2, v0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 724
:cond_c6
:goto_c6
return-object v27
.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 60
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/hls/HlsSampleStreamWrapper;->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 1
.line 431
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->resetSampleQueues()V
.line 432
return-void
.end method
.method public onPlaylistError(Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;J)Z
.registers 5
.param p1, "url" # Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;
.param p2, "blacklistDurationMs" # J
.line 439
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->onPlaylistError(Lcom/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist$HlsUrl;J)Z
move-result v0
return v0
.end method
.method public onUpstreamFormatChanged(Lcom/google/android/exoplayer2/Format;)V
.registers 4
.param p1, "format" # Lcom/google/android/exoplayer2/Format;
.line 839
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->maybeFinishPrepareRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 840
return-void
.end method
.method public prepareWithMasterPlaylistInfo(Lcom/google/android/exoplayer2/source/TrackGroupArray;ILcom/google/android/exoplayer2/source/TrackGroupArray;)V
.registers 5
.param p1, "trackGroups" # Lcom/google/android/exoplayer2/source/TrackGroupArray;
.param p2, "primaryTrackGroupIndex" # I
.param p3, "optionalTrackGroups" # Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 202
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
.line 203
iput-object p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 204
iput-object p3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->optionalTrackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 205
iput p2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primaryTrackGroupIndex:I
.line 206
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->callback:Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$Callback;->onPrepared()V
.line 207
return-void
.end method
.method public readData(ILcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Z)I
.registers 15
.param p1, "sampleQueueIndex" # I
.param p2, "formatHolder" # Lcom/google/android/exoplayer2/FormatHolder;
.param p3, "buffer" # Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;
.param p4, "requireFormat" # Z
.line 455
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_8
.line 456
const/4 v0, -0x3
return v0
.line 460
:cond_8
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result v0
if-nez v0, :cond_54
.line 461
const/4 v0, 0x0
.line 462
.local v0, "discardToMediaChunkIndex":I
:goto_11
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
if-ge v0, v1, :cond_2c
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
.line 463
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->finishedReadingChunk(Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;)Z
move-result v1
if-eqz v1, :cond_2c
.line 464
add-int/lit8 v0, v0, 0x1
goto :goto_11
.line 466
:cond_2c
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
const/4 v2, 0x0
invoke-static {v1, v2, v0}, Lcom/google/android/exoplayer2/util/Util;->removeRange(Ljava/util/List;II)V
.line 467
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.line 468
.local v1, "currentChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
iget-object v9, v1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
.line 469
.local v9, "trackFormat":Lcom/google/android/exoplayer2/Format;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->downstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
invoke-virtual {v9, v2}, Lcom/google/android/exoplayer2/Format;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_52
.line 470
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackType:I
iget v5, v1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->trackSelectionReason:I
iget-object v6, v1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->trackSelectionData:Ljava/lang/Object;
iget-wide v7, v1, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->startTimeUs:J
move-object v4, v9
invoke-virtual/range {v2 .. v8}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->downstreamFormatChanged(ILcom/google/android/exoplayer2/Format;ILjava/lang/Object;J)V
.line 474
:cond_52
iput-object v9, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->downstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.line 477
.end local v0 # "discardToMediaChunkIndex":I
.end local v1 # "currentChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.end local v9 # "trackFormat":Lcom/google/android/exoplayer2/Format;
:cond_54
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v1, v0, p1
iget-boolean v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
iget-wide v6, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
.line 478
move-object v2, p2
move-object v3, p3
move v4, p4
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
.line 480
.local v0, "result":I
const/4 v1, -0x5
if-ne v0, v1, :cond_a7
iget v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primarySampleQueueIndex:I
if-ne p1, v1, :cond_a7
.line 482
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v1, v1, p1
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->peekSourceId()I
move-result v1
.line 483
.local v1, "chunkUid":I
const/4 v2, 0x0
.line 484
.local v2, "chunkIndex":I
:goto_73
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
if-ge v2, v3, :cond_8a
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
iget v3, v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->uid:I
if-eq v3, v1, :cond_8a
.line 485
add-int/lit8 v2, v2, 0x1
goto :goto_73
.line 487
:cond_8a
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
.line 488
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
if-ge v2, v3, :cond_9d
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
.line 489
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
iget-object v3, v3, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
goto :goto_9f
:cond_9d
iget-object v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->upstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.line 491
.local v3, "trackFormat":Lcom/google/android/exoplayer2/Format;
:goto_9f
iget-object v4, p2, Lcom/google/android/exoplayer2/FormatHolder;->format:Lcom/google/android/exoplayer2/Format;
invoke-virtual {v4, v3}, Lcom/google/android/exoplayer2/Format;->copyWithManifestFormatInfo(Lcom/google/android/exoplayer2/Format;)Lcom/google/android/exoplayer2/Format;
move-result-object v4
iput-object v4, p2, Lcom/google/android/exoplayer2/FormatHolder;->format:Lcom/google/android/exoplayer2/Format;
.line 493
.end local v1 # "chunkUid":I
.end local v2 # "chunkIndex":I
.end local v3 # "trackFormat":Lcom/google/android/exoplayer2/Format;
:cond_a7
return v0
.end method
.method public reevaluateBuffer(J)V
.registers 3
.param p1, "positionUs" # J
.line 609
return-void
.end method
.method public release()V
.registers 5
.line 416
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
if-eqz v0, :cond_12
.line 419
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
:goto_8
if-ge v2, v1, :cond_12
aget-object v3, v0, v2
.line 420
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToEnd()V
.line 419
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_8
.line 423
:cond_12
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->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 424
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->handler:Landroid/os/Handler;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
.line 425
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->released:Z
.line 426
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->hlsSampleStreams:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 427
return-void
.end method
.method public seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.registers 2
.param p1, "seekMap" # Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 833
return-void
.end method
.method public seekToUs(JZ)Z
.registers 7
.param p1, "positionUs" # J
.param p3, "forceReset" # Z
.line 391
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
.line 392
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
const/4 v1, 0x1
if-eqz v0, :cond_c
.line 394
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.line 395
return v1
.line 399
:cond_c
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
const/4 v2, 0x0
if-eqz v0, :cond_1a
if-nez p3, :cond_1a
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->seekInsideBufferUs(J)Z
move-result v0
if-eqz v0, :cond_1a
.line 400
return v2
.line 404
:cond_1a
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetPositionUs:J
.line 405
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
.line 406
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 407
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v0
if-eqz v0, :cond_31
.line 408
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->cancelLoading()V
goto :goto_34
.line 410
:cond_31
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->resetSampleQueues()V
.line 412
:goto_34
return v1
.end method
.method public selectTracks([Lcom/google/android/exoplayer2/trackselection/TrackSelection;[Z[Lcom/google/android/exoplayer2/source/SampleStream;[ZJZ)Z
.registers 30
.param p1, "selections" # [Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.param p2, "mayRetainStreamFlags" # [Z
.param p3, "streams" # [Lcom/google/android/exoplayer2/source/SampleStream;
.param p4, "streamResetFlags" # [Z
.param p5, "positionUs" # J
.param p7, "forceReset" # Z
.line 257
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p3
move-wide/from16 v12, p5
iget-boolean v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->prepared:Z
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 258
iget v14, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
.line 260
.local v14, "oldEnabledTrackGroupCount":I
const/4 v3, 0x0
.local v3, "i":I
:goto_10
array-length v4, v1
const/4 v5, 0x0
const/4 v15, 0x1
if-ge v3, v4, :cond_32
.line 261
aget-object v4, v2, v3
if-eqz v4, :cond_2f
aget-object v4, v1, v3
if-eqz v4, :cond_21
aget-boolean v4, p2, v3
if-nez v4, :cond_2f
.line 262
:cond_21
iget v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
sub-int/2addr v4, v15
iput v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
.line 263
aget-object v4, v2, v3
check-cast v4, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;->unbindSampleQueue()V
.line 264
aput-object v5, v2, v3
.line 260
:cond_2f
add-int/lit8 v3, v3, 0x1
goto :goto_10
.line 270
.end local v3 # "i":I
:cond_32
if-nez p7, :cond_44
iget-boolean v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->seenFirstTrackSelection:Z
if-eqz v4, :cond_3b
if-nez v14, :cond_42
goto :goto_44
:cond_3b
iget-wide v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->lastSeekPositionUs:J
cmp-long v4, v12, v6
if-eqz v4, :cond_42
goto :goto_44
:cond_42
const/4 v4, 0x0
goto :goto_45
:cond_44
:goto_44
const/4 v4, 0x1
.line 277
.local v4, "seekRequired":Z
:goto_45
iget-object v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->getTrackSelection()Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object v11
.line 278
.local v11, "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-object v6, v11
.line 280
.local v6, "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
const/4 v7, 0x0
move/from16 v16, v4
move-object v10, v6
.end local v4 # "seekRequired":Z
.end local v6 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.local v7, "i":I
.local v10, "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.local v16, "seekRequired":Z
:goto_50
array-length v4, v1
if-ge v7, v4, :cond_b0
.line 281
aget-object v4, v2, v7
if-nez v4, :cond_ad
aget-object v4, v1, v7
if-eqz v4, :cond_ad
.line 282
iget v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
add-int/2addr v4, v15
iput v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
.line 283
aget-object v4, v1, v7
.line 284
.local v4, "selection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
iget-object v6, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroups:Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-interface {v4}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v8
invoke-virtual {v6, v8}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->indexOf(Lcom/google/android/exoplayer2/source/TrackGroup;)I
move-result v6
.line 285
.local v6, "trackGroupIndex":I
iget v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primaryTrackGroupIndex:I
if-ne v6, v8, :cond_76
.line 286
move-object v10, v4
.line 287
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v8, v4}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->selectTracks(Lcom/google/android/exoplayer2/trackselection/TrackSelection;)V
.line 289
:cond_76
new-instance v8, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
invoke-direct {v8, v0, v6}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;-><init>(Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;I)V
aput-object v8, v2, v7
.line 290
aput-boolean v15, p4, v7
.line 291
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
if-eqz v8, :cond_8a
.line 292
aget-object v8, v2, v7
check-cast v8, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;
invoke-virtual {v8}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStream;->bindSampleQueue()V
.line 295
:cond_8a
iget-boolean v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
if-eqz v8, :cond_ad
if-nez v16, :cond_ad
.line 296
iget-object v8, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
iget-object v9, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
aget v9, v9, v6
aget-object v8, v8, v9
.line 297
.local v8, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v8}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 302
invoke-virtual {v8, v12, v13, v15, v15}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v9
const/4 v3, -0x1
if-ne v9, v3, :cond_aa
.line 303
invoke-virtual {v8}, Lcom/google/android/exoplayer2/source/SampleQueue;->getReadIndex()I
move-result v3
if-eqz v3, :cond_aa
const/4 v3, 0x1
goto :goto_ab
:cond_aa
const/4 v3, 0x0
:goto_ab
move/from16 v16, v3
.line 280
.end local v4 # "selection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v6 # "trackGroupIndex":I
.end local v8 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_ad
add-int/lit8 v7, v7, 0x1
goto :goto_50
.line 308
.end local v7 # "i":I
:cond_b0
iget v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->enabledTrackGroupCount:I
if-nez v3, :cond_eb
.line 309
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->reset()V
.line 310
iput-object v5, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->downstreamTrackFormat:Lcom/google/android/exoplayer2/Format;
.line 311
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->clear()V
.line 312
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v3
if-eqz v3, :cond_e0
.line 313
iget-boolean v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesBuilt:Z
if-eqz v3, :cond_da
.line 315
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v4, v3
const/4 v5, 0x0
:goto_d0
if-ge v5, v4, :cond_da
aget-object v6, v3, v5
.line 316
.local v6, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToEnd()V
.line 315
.end local v6 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v5, v5, 0x1
goto :goto_d0
.line 319
:cond_da
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/upstream/Loader;->cancelLoading()V
goto :goto_e3
.line 321
:cond_e0
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->resetSampleQueues()V
.line 367
:goto_e3
move/from16 v3, p7
move-object/from16 v19, v10
move-object/from16 v20, v11
goto/16 :goto_16e
.line 324
:cond_eb
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->mediaChunks:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->isEmpty()Z
move-result v3
if-nez v3, :cond_155
.line 325
invoke-static {v10, v11}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_150
.line 328
const/16 v17, 0x0
.line 329
.local v17, "primarySampleQueueDirty":Z
iget-boolean v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->seenFirstTrackSelection:Z
if-nez v3, :cond_140
.line 330
const-wide/16 v3, 0x0
cmp-long v5, v12, v3
if-gez v5, :cond_106
neg-long v3, v12
:cond_106
move-wide v6, v3
.line 331
.local v6, "bufferedDurationUs":J
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getLastMediaChunk()Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
move-result-object v8
.line 332
.local v8, "lastMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
.line 333
invoke-virtual {v3, v8, v12, v13}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->createMediaChunkIterators(Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;J)[Lcom/google/android/exoplayer2/source/chunk/MediaChunkIterator;
move-result-object v18
.line 334
.local v18, "mediaChunkIterators":[Lcom/google/android/exoplayer2/source/chunk/MediaChunkIterator;
const-wide v19, -0x7fffffffffffffffL # -4.9E-324
iget-object v9, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->readOnlyMediaChunks:Ljava/util/List;
move-object v3, v10
move-wide/from16 v4, p5
move-object v15, v8
move-object/from16 v21, v9
.end local v8 # "lastMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.local v15, "lastMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
move-wide/from16 v8, v19
move-object/from16 v19, v10
.end local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.local v19, "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-object/from16 v10, v21
move-object/from16 v20, v11
.end local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.local v20, "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-object/from16 v11, v18
invoke-interface/range {v3 .. v11}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->updateSelectedTrack(JJJLjava/util/List;[Lcom/google/android/exoplayer2/source/chunk/MediaChunkIterator;)V
.line 340
iget-object v3, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v3
iget-object v4, v15, Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;->trackFormat:Lcom/google/android/exoplayer2/Format;
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/TrackGroup;->indexOf(Lcom/google/android/exoplayer2/Format;)I
move-result v3
.line 341
.local v3, "chunkIndex":I
invoke-interface/range {v19 .. v19}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getSelectedIndexInTrackGroup()I
move-result v4
if-eq v4, v3, :cond_13f
.line 344
const/16 v17, 0x1
.line 346
.end local v3 # "chunkIndex":I
.end local v6 # "bufferedDurationUs":J
.end local v15 # "lastMediaChunk":Lcom/google/android/exoplayer2/source/hls/HlsMediaChunk;
.end local v18 # "mediaChunkIterators":[Lcom/google/android/exoplayer2/source/chunk/MediaChunkIterator;
:cond_13f
goto :goto_146
.line 348
.end local v19 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v20 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
:cond_140
move-object/from16 v19, v10
move-object/from16 v20, v11
.end local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v19 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v20 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
const/16 v17, 0x1
.line 350
:goto_146
if-eqz v17, :cond_159
.line 351
const/4 v3, 0x1
.line 352
.end local p7 # "forceReset":Z
.local v3, "forceReset":Z
const/4 v4, 0x1
.line 353
.end local v16 # "seekRequired":Z
.local v4, "seekRequired":Z
const/4 v5, 0x1
iput-boolean v5, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->pendingResetUpstreamFormats:Z
move/from16 v16, v4
goto :goto_15b
.line 325
.end local v3 # "forceReset":Z
.end local v4 # "seekRequired":Z
.end local v17 # "primarySampleQueueDirty":Z
.end local v19 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v20 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v16 # "seekRequired":Z
.restart local p7 # "forceReset":Z
:cond_150
move-object/from16 v19, v10
move-object/from16 v20, v11
.end local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v19 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v20 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
goto :goto_159
.line 324
.end local v19 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v20 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
:cond_155
move-object/from16 v19, v10
move-object/from16 v20, v11
.line 356
.end local v10 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v11 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v19 # "primaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.restart local v20 # "oldPrimaryTrackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
:cond_159
:goto_159
move/from16 v3, p7
.end local p7 # "forceReset":Z
.restart local v3 # "forceReset":Z
:goto_15b
if-eqz v16, :cond_16e
.line 357
invoke-virtual {v0, v12, v13, v3}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->seekToUs(JZ)Z
.line 359
const/4 v4, 0x0
.local v4, "i":I
:goto_161
array-length v5, v2
if-ge v4, v5, :cond_16e
.line 360
aget-object v5, v2, v4
if-eqz v5, :cond_16b
.line 361
const/4 v5, 0x1
aput-boolean v5, p4, v4
.line 359
:cond_16b
add-int/lit8 v4, v4, 0x1
goto :goto_161
.line 367
.end local v4 # "i":I
:cond_16e
:goto_16e
invoke-direct {v0, v2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->updateSampleStreams([Lcom/google/android/exoplayer2/source/SampleStream;)V
.line 368
const/4 v4, 0x1
iput-boolean v4, v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->seenFirstTrackSelection:Z
.line 369
return v16
.end method
.method public setIsTimestampMaster(Z)V
.registers 3
.param p1, "isTimestampMaster" # Z
.line 435
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkSource:Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/source/hls/HlsChunkSource;->setIsTimestampMaster(Z)V
.line 436
return-void
.end method
.method public setSampleOffsetUs(J)V
.registers 7
.param p1, "sampleOffsetUs" # J
.line 845
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleOffsetUs:J
.line 846
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
:goto_6
if-ge v2, v1, :cond_10
aget-object v3, v0, v2
.line 847
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3, p1, p2}, Lcom/google/android/exoplayer2/source/SampleQueue;->setSampleOffsetUs(J)V
.line 846
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_6
.line 849
:cond_10
return-void
.end method
.method public skipData(IJ)I
.registers 9
.param p1, "sampleQueueIndex" # I
.param p2, "positionUs" # J
.line 497
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->isPendingReset()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_8
.line 498
return v1
.line 501
:cond_8
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v0, v0, p1
.line 502
.local v0, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
iget-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->loadingFinished:Z
if-eqz v2, :cond_1d
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v2
cmp-long v4, p2, v2
if-lez v4, :cond_1d
.line 503
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceToEnd()I
move-result v1
return v1
.line 505
:cond_1d
const/4 v2, 0x1
invoke-virtual {v0, p2, p3, v2, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v2
.line 506
.local v2, "skipCount":I
const/4 v3, -0x1
if-ne v2, v3, :cond_26
goto :goto_27
:cond_26
move v1, v2
:goto_27
return v1
.end method
.method public track(II)Lcom/google/android/exoplayer2/extractor/TrackOutput;
.registers 10
.param p1, "id" # I
.param p2, "type" # I
.line 758
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
.line 761
.local v1, "trackCount":I
const/4 v2, -0x1
const/4 v3, 0x2
const/4 v4, 0x1
if-ne p2, v4, :cond_30
.line 762
iget v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueIndex:I
if-eq v5, v2, :cond_27
.line 763
iget-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueMappingDone:Z
if-eqz v2, :cond_1e
.line 764
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
aget v2, v2, v5
if-ne v2, p1, :cond_19
aget-object v0, v0, v5
goto :goto_1d
.line 766
:cond_19
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->createDummyTrackOutput(II)Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
move-result-object v0
.line 764
:goto_1d
return-object v0
.line 768
:cond_1e
iput-boolean v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueMappingDone:Z
.line 769
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
aput p1, v2, v5
.line 770
aget-object v0, v0, v5
return-object v0
.line 771
:cond_27
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->tracksEnded:Z
if-eqz v0, :cond_74
.line 772
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->createDummyTrackOutput(II)Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
move-result-object v0
return-object v0
.line 774
:cond_30
if-ne p2, v3, :cond_5a
.line 775
iget v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueIndex:I
if-eq v5, v2, :cond_51
.line 776
iget-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueMappingDone:Z
if-eqz v2, :cond_48
.line 777
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
aget v2, v2, v5
if-ne v2, p1, :cond_43
aget-object v0, v0, v5
goto :goto_47
.line 779
:cond_43
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->createDummyTrackOutput(II)Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
move-result-object v0
.line 777
:goto_47
return-object v0
.line 781
:cond_48
iput-boolean v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueMappingDone:Z
.line 782
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
aput p1, v2, v5
.line 783
aget-object v0, v0, v5
return-object v0
.line 784
:cond_51
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->tracksEnded:Z
if-eqz v0, :cond_74
.line 785
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->createDummyTrackOutput(II)Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
move-result-object v0
return-object v0
.line 788
:cond_5a
const/4 v0, 0x0
.local v0, "i":I
:goto_5b
if-ge v0, v1, :cond_6b
.line 789
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
aget v2, v2, v0
if-ne v2, p1, :cond_68
.line 790
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v2, v2, v0
return-object v2
.line 788
:cond_68
add-int/lit8 v0, v0, 0x1
goto :goto_5b
.line 793
.end local v0 # "i":I
:cond_6b
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->tracksEnded:Z
if-eqz v0, :cond_74
.line 794
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->createDummyTrackOutput(II)Lcom/google/android/exoplayer2/extractor/DummyTrackOutput;
move-result-object v0
return-object v0
.line 797
:cond_74
new-instance v0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$PrivTimestampStrippingSampleQueue;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
invoke-direct {v0, v2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper$PrivTimestampStrippingSampleQueue;-><init>(Lcom/google/android/exoplayer2/upstream/Allocator;)V
.line 798
.local v0, "trackOutput":Lcom/google/android/exoplayer2/source/SampleQueue;
iget-wide v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleOffsetUs:J
invoke-virtual {v0, v5, v6}, Lcom/google/android/exoplayer2/source/SampleQueue;->setSampleOffsetUs(J)V
.line 799
iget v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->chunkUid:I
invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;->sourceId(I)V
.line 800
invoke-virtual {v0, p0}, Lcom/google/android/exoplayer2/source/SampleQueue;->setUpstreamFormatChangeListener(Lcom/google/android/exoplayer2/source/SampleQueue$UpstreamFormatChangedListener;)V
.line 801
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
add-int/lit8 v5, v1, 0x1
invoke-static {v2, v5}, Ljava/util/Arrays;->copyOf([II)[I
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueTrackIds:[I
.line 802
aput p1, v2, v1
.line 803
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v5, v1, 0x1
invoke-static {v2, v5}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
move-result-object v2
check-cast v2, [Lcom/google/android/exoplayer2/source/SampleQueue;
iput-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.line 804
aput-object v0, v2, v1
.line 805
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueIsAudioVideoFlags:[Z
add-int/lit8 v5, v1, 0x1
invoke-static {v2, v5}, Ljava/util/Arrays;->copyOf([ZI)[Z
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueIsAudioVideoFlags:[Z
.line 806
if-eq p2, v4, :cond_b3
if-ne p2, v3, :cond_b1
goto :goto_b3
:cond_b1
const/4 v5, 0x0
goto :goto_b4
:cond_b3
:goto_b3
const/4 v5, 0x1
:goto_b4
aput-boolean v5, v2, v1
.line 808
iget-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->haveAudioVideoSampleQueues:Z
iget-object v5, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueueIsAudioVideoFlags:[Z
aget-boolean v5, v5, v1
or-int/2addr v2, v5
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->haveAudioVideoSampleQueues:Z
.line 809
if-ne p2, v4, :cond_c6
.line 810
iput-boolean v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueMappingDone:Z
.line 811
iput v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->audioSampleQueueIndex:I
goto :goto_cc
.line 812
:cond_c6
if-ne p2, v3, :cond_cc
.line 813
iput-boolean v4, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueMappingDone:Z
.line 814
iput v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->videoSampleQueueIndex:I
.line 816
:cond_cc
:goto_cc
invoke-static {p2}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getTrackTypeScore(I)I
move-result v2
iget v3, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primarySampleQueueType:I
invoke-static {v3}, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->getTrackTypeScore(I)I
move-result v3
if-le v2, v3, :cond_dc
.line 817
iput v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primarySampleQueueIndex:I
.line 818
iput p2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->primarySampleQueueType:I
.line 820
:cond_dc
iget-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
add-int/lit8 v3, v1, 0x1
invoke-static {v2, v3}, Ljava/util/Arrays;->copyOf([ZI)[Z
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
.line 821
return-object v0
.end method
.method public unbindSampleQueue(I)V
.registers 5
.param p1, "trackGroupIndex" # I
.line 233
iget-object v0, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->trackGroupToSampleQueueIndex:[I
aget v0, v0, p1
.line 234
.local v0, "sampleQueueIndex":I
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
aget-boolean v1, v1, v0
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 235
iget-object v1, p0, Lcom/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper;->sampleQueuesEnabledStates:[Z
const/4 v2, 0x0
aput-boolean v2, v1, v0
.line 236
return-void
.end method