ExtractorMediaPeriod.smali
.class final Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.super Ljava/lang/Object;
.source "ExtractorMediaPeriod.java"
# interfaces
.implements Lcom/google/android/exoplayer2/source/MediaPeriod;
.implements Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.implements Lcom/google/android/exoplayer2/upstream/Loader$Callback;
.implements Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;
.implements Lcom/google/android/exoplayer2/source/SampleQueue$UpstreamFormatChangedListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;,
Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;,
Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;,
Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;,
Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$SampleStreamImpl;,
Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/source/MediaPeriod;",
"Lcom/google/android/exoplayer2/extractor/ExtractorOutput;",
"Lcom/google/android/exoplayer2/upstream/Loader$Callback<",
"Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;",
">;",
"Lcom/google/android/exoplayer2/upstream/Loader$ReleaseCallback;",
"Lcom/google/android/exoplayer2/source/SampleQueue$UpstreamFormatChangedListener;"
}
.end annotation
# static fields
.field private static final DEFAULT_LAST_SAMPLE_DURATION_US:J = 0x2710L
.field private static final ICY_FORMAT:Lcom/google/android/exoplayer2/Format;
# instance fields
.field private final allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
.field private callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.field private final continueLoadingCheckIntervalBytes:J
.field private final customCacheKey:Ljava/lang/String;
.field private final dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private dataType:I
.field private durationUs:J
.field private enabledTrackCount:I
.field private final eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.field private extractedSamplesCountAtStartOfLoad:I
.field private final extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
.field private final handler:Landroid/os/Handler;
.field private haveAudioVideoTracks:Z
.field private icyHeaders:Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
.field private lastSeekPositionUs:J
.field private length:J
.field private final listener:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;
.field private final loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
.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 notifiedReadingStarted:Z
.field private notifyDiscontinuity:Z
.field private final onContinueLoadingRequestedRunnable:Ljava/lang/Runnable;
.field private pendingDeferredRetry:Z
.field private pendingResetPositionUs:J
.field private prepared:Z
.field private preparedState:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
.field private released:Z
.field private sampleQueueTrackIds:[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
.field private sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.field private sampleQueuesBuilt:Z
.field private seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.field private seenFirstTrackSelection:Z
.field private final uri:Landroid/net/Uri;
# direct methods
.method static constructor <clinit>()V
.registers 4
.line 85
nop
.line 86
const-string v0, "icy"
const-string v1, "application/x-icy"
const-wide v2, 0x7fffffffffffffffL
invoke-static {v0, v1, v2, v3}, Lcom/google/android/exoplayer2/Format;->createSampleFormat(Ljava/lang/String;Ljava/lang/String;J)Lcom/google/android/exoplayer2/Format;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->ICY_FORMAT:Lcom/google/android/exoplayer2/Format;
.line 85
return-void
.end method
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource;[Lcom/google/android/exoplayer2/extractor/Extractor;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;Lcom/google/android/exoplayer2/upstream/Allocator;Ljava/lang/String;I)V
.registers 14
.param p1, "uri" # Landroid/net/Uri;
.param p2, "dataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.param p3, "extractors" # [Lcom/google/android/exoplayer2/extractor/Extractor;
.param p4, "loadErrorHandlingPolicy" # Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.param p5, "eventDispatcher" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.param p6, "listener" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;
.param p7, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p8, "customCacheKey" # Ljava/lang/String;
.param p9, "continueLoadingCheckIntervalBytes" # I
.line 157
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 158
iput-object p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->uri:Landroid/net/Uri;
.line 159
iput-object p2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 160
iput-object p4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.line 161
iput-object p5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 162
iput-object p6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->listener:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;
.line 163
iput-object p7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
.line 164
iput-object p8, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->customCacheKey:Ljava/lang/String;
.line 165
int-to-long v0, p9
iput-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->continueLoadingCheckIntervalBytes:J
.line 166
new-instance v0, Lcom/google/android/exoplayer2/upstream/Loader;
const-string v1, "Loader:ExtractorMediaPeriod"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/upstream/Loader;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 167
new-instance v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
invoke-direct {v0, p3}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;-><init>([Lcom/google/android/exoplayer2/extractor/Extractor;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
.line 168
new-instance v0, Lcom/google/android/exoplayer2/util/ConditionVariable;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/ConditionVariable;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
.line 169
new-instance v0, Lcom/google/android/exoplayer2/source/-$$Lambda$ExtractorMediaPeriod$Ll7lI30pD07GZk92Lo8XgkQMAAY;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/-$$Lambda$ExtractorMediaPeriod$Ll7lI30pD07GZk92Lo8XgkQMAAY;-><init>(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeFinishPrepareRunnable:Ljava/lang/Runnable;
.line 170
new-instance v0, Lcom/google/android/exoplayer2/source/-$$Lambda$ExtractorMediaPeriod$Hd-sBytb6cpkhM49l8dYCND3wmk;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/-$$Lambda$ExtractorMediaPeriod$Hd-sBytb6cpkhM49l8dYCND3wmk;-><init>(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->onContinueLoadingRequestedRunnable:Ljava/lang/Runnable;
.line 176
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->handler:Landroid/os/Handler;
.line 177
const/4 v0, 0x0
new-array v1, v0, [Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
iput-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueueTrackIds:[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
.line 178
new-array v0, v0, [Lcom/google/android/exoplayer2/source/SampleQueue;
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.line 179
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
iput-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 180
const-wide/16 v2, -0x1
iput-wide v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->length:J
.line 181
iput-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 182
const/4 v0, 0x1
iput v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataType:I
.line 183
invoke-virtual {p5}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->mediaPeriodCreated()V
.line 184
return-void
.end method
.method static synthetic access$1000(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Landroid/os/Handler;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 60
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->handler:Landroid/os/Handler;
return-object v0
.end method
.method static synthetic access$1100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)J
.registers 3
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 60
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getLargestQueuedTimestampUs()J
move-result-wide v0
return-wide v0
.end method
.method static synthetic access$1200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Ljava/lang/String;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 60
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->customCacheKey:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$600(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 60
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->icyHeaders:Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
return-object v0
.end method
.method static synthetic access$602(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.param p1, "x1" # Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
.line 60
iput-object p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->icyHeaders:Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
return-object p1
.end method
.method static synthetic access$700()Lcom/google/android/exoplayer2/Format;
.registers 1
.line 60
sget-object v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->ICY_FORMAT:Lcom/google/android/exoplayer2/Format;
return-object v0
.end method
.method static synthetic access$800(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)J
.registers 3
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 60
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->continueLoadingCheckIntervalBytes:J
return-wide v0
.end method
.method static synthetic access$900(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Ljava/lang/Runnable;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 60
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->onContinueLoadingRequestedRunnable:Ljava/lang/Runnable;
return-object v0
.end method
.method private configureRetry(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;I)Z
.registers 10
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.param p2, "currentExtractedSampleCount" # I
.line 765
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->length:J
const/4 v2, 0x1
const-wide/16 v3, -0x1
cmp-long v5, v0, v3
if-nez v5, :cond_44
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
if-eqz v0, :cond_1b
.line 766
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/SeekMap;->getDurationUs()J
move-result-wide v0
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
cmp-long v5, v0, v3
if-eqz v5, :cond_1b
goto :goto_44
.line 771
:cond_1b
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
const/4 v1, 0x0
if-eqz v0, :cond_29
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->suppressRead()Z
move-result v0
if-nez v0, :cond_29
.line 781
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingDeferredRetry:Z
.line 782
return v1
.line 788
:cond_29
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
.line 789
const-wide/16 v3, 0x0
iput-wide v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
.line 790
iput v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractedSamplesCountAtStartOfLoad:I
.line 791
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v5, v0
:goto_36
if-ge v1, v5, :cond_40
aget-object v6, v0, v1
.line 792
.local v6, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 791
.end local v6 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v1, v1, 0x1
goto :goto_36
.line 794
:cond_40
invoke-static {p1, v3, v4, v3, v4}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$500(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJ)V
.line 795
return v2
.line 769
:cond_44
:goto_44
iput p2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractedSamplesCountAtStartOfLoad:I
.line 770
return v2
.end method
.method private copyLengthFromLoader(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)V
.registers 7
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.line 718
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->length:J
const-wide/16 v2, -0x1
cmp-long v4, v0, v2
if-nez v4, :cond_e
.line 719
invoke-static {p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$400(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->length:J
.line 721
:cond_e
return-void
.end method
.method private getExtractedSamplesCount()I
.registers 7
.line 825
const/4 v0, 0x0
.line 826
.local v0, "extractedSamplesCount":I
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v1
const/4 v3, 0x0
:goto_5
if-ge v3, v2, :cond_11
aget-object v4, v1, v3
.line 827
.local v4, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->getWriteIndex()I
move-result v5
add-int/2addr v0, v5
.line 826
.end local v4 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v3, v3, 0x1
goto :goto_5
.line 829
:cond_11
return v0
.end method
.method private getLargestQueuedTimestampUs()J
.registers 9
.line 833
const-wide/high16 v0, -0x8000000000000000L
.line 834
.local v0, "largestQueuedTimestampUs":J
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v3, v2
const/4 v4, 0x0
:goto_6
if-ge v4, v3, :cond_16
aget-object v5, v2, v4
.line 835
.local v5, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
nop
.line 836
invoke-virtual {v5}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v6
.line 835
invoke-static {v0, v1, v6, v7}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
.line 834
.end local v5 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v4, v4, 0x1
goto :goto_6
.line 838
:cond_16
return-wide v0
.end method
.method private getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
.registers 2
.line 714
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->preparedState:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
return-object v0
.end method
.method private isPendingReset()Z
.registers 6
.line 842
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->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$Ll7lI30pD07GZk92Lo8XgkQMAAY(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)V
.registers 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeFinishPrepare()V
return-void
.end method
.method private maybeFinishPrepare()V
.registers 16
.line 663
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 664
.local v0, "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->released:Z
if-nez v1, :cond_e2
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
if-nez v1, :cond_e2
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueuesBuilt:Z
if-eqz v1, :cond_e2
if-nez v0, :cond_12
goto/16 :goto_e2
.line 667
:cond_12
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v1
const/4 v3, 0x0
const/4 v4, 0x0
:goto_17
if-ge v4, v2, :cond_25
aget-object v5, v1, v4
.line 668
.local v5, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/source/SampleQueue;->getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
move-result-object v6
if-nez v6, :cond_22
.line 669
return-void
.line 667
.end local v5 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_22
add-int/lit8 v4, v4, 0x1
goto :goto_17
.line 672
:cond_25
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ConditionVariable;->close()Z
.line 673
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v1
.line 674
.local v1, "trackCount":I
new-array v2, v1, [Lcom/google/android/exoplayer2/source/TrackGroup;
.line 675
.local v2, "trackArray":[Lcom/google/android/exoplayer2/source/TrackGroup;
new-array v4, v1, [Z
.line 676
.local v4, "trackIsAudioVideoFlags":[Z
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/SeekMap;->getDurationUs()J
move-result-wide v5
iput-wide v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 677
const/4 v5, 0x0
.local v5, "i":I
:goto_38
const/4 v6, 0x1
if-ge v5, v1, :cond_a3
.line 678
iget-object v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v7, v7, v5
invoke-virtual {v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->getUpstreamFormat()Lcom/google/android/exoplayer2/Format;
move-result-object v7
.line 679
.local v7, "trackFormat":Lcom/google/android/exoplayer2/Format;
iget-object v8, v7, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 680
.local v8, "mimeType":Ljava/lang/String;
invoke-static {v8}, Lcom/google/android/exoplayer2/util/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v9
.line 681
.local v9, "isAudio":Z
if-nez v9, :cond_54
invoke-static {v8}, Lcom/google/android/exoplayer2/util/MimeTypes;->isVideo(Ljava/lang/String;)Z
move-result v10
if-eqz v10, :cond_52
goto :goto_54
:cond_52
const/4 v10, 0x0
goto :goto_55
:cond_54
:goto_54
const/4 v10, 0x1
.line 682
.local v10, "isAudioVideo":Z
:goto_55
aput-boolean v10, v4, v5
.line 683
iget-boolean v11, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->haveAudioVideoTracks:Z
or-int/2addr v11, v10
iput-boolean v11, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->haveAudioVideoTracks:Z
.line 684
iget-object v11, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->icyHeaders:Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
.line 685
.local v11, "icyHeaders":Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
if-eqz v11, :cond_95
.line 686
if-nez v9, :cond_6a
iget-object v12, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueueTrackIds:[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
aget-object v12, v12, v5
iget-boolean v12, v12, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;->isIcyTrack:Z
if-eqz v12, :cond_84
.line 687
:cond_6a
iget-object v12, v7, Lcom/google/android/exoplayer2/Format;->metadata:Lcom/google/android/exoplayer2/metadata/Metadata;
.line 688
.local v12, "metadata":Lcom/google/android/exoplayer2/metadata/Metadata;
if-nez v12, :cond_78
new-instance v13, Lcom/google/android/exoplayer2/metadata/Metadata;
new-array v14, v6, [Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
aput-object v11, v14, v3
invoke-direct {v13, v14}, Lcom/google/android/exoplayer2/metadata/Metadata;-><init>([Lcom/google/android/exoplayer2/metadata/Metadata$Entry;)V
goto :goto_80
:cond_78
new-array v13, v6, [Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
aput-object v11, v13, v3
.line 692
invoke-virtual {v12, v13}, Lcom/google/android/exoplayer2/metadata/Metadata;->copyWithAppendedEntries([Lcom/google/android/exoplayer2/metadata/Metadata$Entry;)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object v13
.line 689
:goto_80
invoke-virtual {v7, v13}, Lcom/google/android/exoplayer2/Format;->copyWithMetadata(Lcom/google/android/exoplayer2/metadata/Metadata;)Lcom/google/android/exoplayer2/Format;
move-result-object v7
.line 694
.end local v12 # "metadata":Lcom/google/android/exoplayer2/metadata/Metadata;
:cond_84
if-eqz v9, :cond_95
iget v12, v7, Lcom/google/android/exoplayer2/Format;->bitrate:I
const/4 v13, -0x1
if-ne v12, v13, :cond_95
iget v12, v11, Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;->bitrate:I
if-eq v12, v13, :cond_95
.line 697
iget v12, v11, Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;->bitrate:I
invoke-virtual {v7, v12}, Lcom/google/android/exoplayer2/Format;->copyWithBitrate(I)Lcom/google/android/exoplayer2/Format;
move-result-object v7
.line 700
:cond_95
new-instance v12, Lcom/google/android/exoplayer2/source/TrackGroup;
new-array v6, v6, [Lcom/google/android/exoplayer2/Format;
aput-object v7, v6, v3
invoke-direct {v12, v6}, Lcom/google/android/exoplayer2/source/TrackGroup;-><init>([Lcom/google/android/exoplayer2/Format;)V
aput-object v12, v2, v5
.line 677
.end local v7 # "trackFormat":Lcom/google/android/exoplayer2/Format;
.end local v8 # "mimeType":Ljava/lang/String;
.end local v9 # "isAudio":Z
.end local v10 # "isAudioVideo":Z
.end local v11 # "icyHeaders":Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
add-int/lit8 v5, v5, 0x1
goto :goto_38
.line 702
.end local v5 # "i":I
:cond_a3
iget-wide v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->length:J
const-wide/16 v9, -0x1
cmp-long v3, v7, v9
if-nez v3, :cond_ba
.line 703
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/SeekMap;->getDurationUs()J
move-result-wide v7
const-wide v9, -0x7fffffffffffffffL # -4.9E-324
cmp-long v3, v7, v9
if-nez v3, :cond_ba
const/4 v3, 0x7
goto :goto_bb
:cond_ba
const/4 v3, 0x1
:goto_bb
iput v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataType:I
.line 706
new-instance v3, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
new-instance v5, Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-direct {v5, v2}, Lcom/google/android/exoplayer2/source/TrackGroupArray;-><init>([Lcom/google/android/exoplayer2/source/TrackGroup;)V
invoke-direct {v3, v0, v5, v4}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;-><init>(Lcom/google/android/exoplayer2/extractor/SeekMap;Lcom/google/android/exoplayer2/source/TrackGroupArray;[Z)V
iput-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->preparedState:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
.line 708
iput-boolean v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
.line 709
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->listener:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;
iget-wide v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/SeekMap;->isSeekable()Z
move-result v7
invoke-interface {v3, v5, v6, v7}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;->onSourceInfoRefreshed(JZ)V
.line 710
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v3, p0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.line 711
return-void
.line 665
.end local v1 # "trackCount":I
.end local v2 # "trackArray":[Lcom/google/android/exoplayer2/source/TrackGroup;
.end local v4 # "trackIsAudioVideoFlags":[Z
:cond_e2
:goto_e2
return-void
.end method
.method private maybeNotifyDownstreamFormat(I)V
.registers 13
.param p1, "track" # I
.line 473
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
.line 474
.local v0, "preparedState":Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->trackNotifiedDownstreamFormats:[Z
.line 475
.local v1, "trackNotifiedDownstreamFormats":[Z
aget-boolean v2, v1, p1
if-nez v2, :cond_28
.line 476
iget-object v2, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->tracks:Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-virtual {v2, p1}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->get(I)Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v2, v3}, Lcom/google/android/exoplayer2/source/TrackGroup;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v2
.line 477
.local v2, "trackFormat":Lcom/google/android/exoplayer2/Format;
iget-object v4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, v2, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 478
invoke-static {v3}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackType(Ljava/lang/String;)I
move-result v5
const/4 v7, 0x0
const/4 v8, 0x0
iget-wide v9, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
.line 477
move-object v6, v2
invoke-virtual/range {v4 .. v10}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->downstreamFormatChanged(ILcom/google/android/exoplayer2/Format;ILjava/lang/Object;J)V
.line 483
const/4 v3, 0x1
aput-boolean v3, v1, p1
.line 485
.end local v2 # "trackFormat":Lcom/google/android/exoplayer2/Format;
:cond_28
return-void
.end method
.method private maybeStartDeferredRetry(I)V
.registers 7
.param p1, "track" # I
.line 488
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
iget-object v0, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->trackIsAudioVideoFlags:[Z
.line 489
.local v0, "trackIsAudioVideoFlags":[Z
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingDeferredRetry:Z
if-eqz v1, :cond_40
aget-boolean v1, v0, p1
if-eqz v1, :cond_40
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v1, v1, p1
.line 491
invoke-virtual {v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->hasNextSample()Z
move-result v1
if-eqz v1, :cond_19
goto :goto_40
.line 494
:cond_19
const-wide/16 v1, 0x0
iput-wide v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 495
const/4 v3, 0x0
iput-boolean v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingDeferredRetry:Z
.line 496
const/4 v4, 0x1
iput-boolean v4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
.line 497
iput-wide v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
.line 498
iput v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractedSamplesCountAtStartOfLoad:I
.line 499
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v1
:goto_2a
if-ge v3, v2, :cond_34
aget-object v4, v1, v3
.line 500
.local v4, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 499
.end local v4 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v3, v3, 0x1
goto :goto_2a
.line 502
:cond_34
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v1, p0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 503
return-void
.line 492
:cond_40
:goto_40
return-void
.end method
.method private prepareTrackOutput(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;)Lcom/google/android/exoplayer2/extractor/TrackOutput;
.registers 7
.param p1, "id" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
.line 644
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v0, v0
.line 645
.local v0, "trackCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_4
if-ge v1, v0, :cond_18
.line 646
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueueTrackIds:[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
aget-object v2, v2, v1
invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_15
.line 647
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v2, v2, v1
return-object v2
.line 645
:cond_15
add-int/lit8 v1, v1, 0x1
goto :goto_4
.line 650
.end local v1 # "i":I
:cond_18
new-instance v1, Lcom/google/android/exoplayer2/source/SampleQueue;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->allocator:Lcom/google/android/exoplayer2/upstream/Allocator;
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/source/SampleQueue;-><init>(Lcom/google/android/exoplayer2/upstream/Allocator;)V
.line 651
.local v1, "trackOutput":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v1, p0}, Lcom/google/android/exoplayer2/source/SampleQueue;->setUpstreamFormatChangeListener(Lcom/google/android/exoplayer2/source/SampleQueue$UpstreamFormatChangedListener;)V
.line 653
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueueTrackIds:[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
add-int/lit8 v3, v0, 0x1
invoke-static {v2, v3}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
move-result-object v2
check-cast v2, [Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
.line 654
.local v2, "sampleQueueTrackIds":[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
aput-object p1, v2, v0
.line 655
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Util;->castNonNullTypeArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v3
check-cast v3, [Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
iput-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueueTrackIds:[Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
.line 656
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v4, v0, 0x1
invoke-static {v3, v4}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
move-result-object v3
check-cast v3, [Lcom/google/android/exoplayer2/source/SampleQueue;
.line 657
.local v3, "sampleQueues":[Lcom/google/android/exoplayer2/source/SampleQueue;
aput-object v1, v3, v0
.line 658
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Util;->castNonNullTypeArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v4
check-cast v4, [Lcom/google/android/exoplayer2/source/SampleQueue;
iput-object v4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
.line 659
return-object v1
.end method
.method private seekInsideBufferUs([ZJ)Z
.registers 11
.param p1, "trackIsAudioVideoFlags" # [Z
.param p2, "positionUs" # J
.line 807
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v0, v0
.line 808
.local v0, "trackCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_4
const/4 v2, 0x1
if-ge v1, v0, :cond_26
.line 809
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v3, v3, v1
.line 810
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 811
const/4 v4, 0x0
invoke-virtual {v3, p2, p3, 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 817
.local v2, "seekInsideQueue":Z
:goto_18
if-nez v2, :cond_23
aget-boolean v5, p1, v1
if-nez v5, :cond_22
iget-boolean v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->haveAudioVideoTracks:Z
if-nez v5, :cond_23
.line 818
:cond_22
return v4
.line 808
.end local v2 # "seekInsideQueue":Z
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_23
add-int/lit8 v1, v1, 0x1
goto :goto_4
.line 821
.end local v1 # "i":I
:cond_26
return v2
.end method
.method private startLoading()V
.registers 22
.line 724
move-object/from16 v7, p0
new-instance v8, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
iget-object v2, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->uri:Landroid/net/Uri;
iget-object v3, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
iget-object v4, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
iget-object v6, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
move-object v0, v8
move-object/from16 v1, p0
move-object/from16 v5, p0
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;-><init>(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;Lcom/google/android/exoplayer2/extractor/ExtractorOutput;Lcom/google/android/exoplayer2/util/ConditionVariable;)V
.line 727
.local v0, "loadable":Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
iget-boolean v1, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
if-eqz v1, :cond_4d
.line 728
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v1
iget-object v1, v1, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 729
.local v1, "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->isPendingReset()Z
move-result v2
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 730
iget-wide v2, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
cmp-long v6, v2, v4
if-eqz v6, :cond_3c
iget-wide v8, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
cmp-long v6, v8, v2
if-ltz v6, :cond_3c
.line 731
const/4 v2, 0x1
iput-boolean v2, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
.line 732
iput-wide v4, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 733
return-void
.line 735
:cond_3c
iget-wide v2, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 736
invoke-interface {v1, v2, v3}, Lcom/google/android/exoplayer2/extractor/SeekMap;->getSeekPoints(J)Lcom/google/android/exoplayer2/extractor/SeekMap$SeekPoints;
move-result-object v2
iget-object v2, v2, Lcom/google/android/exoplayer2/extractor/SeekMap$SeekPoints;->first:Lcom/google/android/exoplayer2/extractor/SeekPoint;
iget-wide v2, v2, Lcom/google/android/exoplayer2/extractor/SeekPoint;->position:J
iget-wide v8, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 735
invoke-static {v0, v2, v3, v8, v9}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$500(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJ)V
.line 737
iput-wide v4, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 739
.end local v1 # "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
:cond_4d
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getExtractedSamplesCount()I
move-result v1
iput v1, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractedSamplesCountAtStartOfLoad:I
.line 740
iget-object v1, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
iget-object v2, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v3, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataType:I
.line 742
invoke-interface {v2, v3}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getMinimumLoadableRetryCount(I)I
move-result v2
.line 741
invoke-virtual {v1, v0, v7, v2}, 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 v1
.line 743
.local v1, "elapsedRealtimeMs":J
iget-object v8, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 744
invoke-static {v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/DataSpec;
move-result-object v9
const/4 v10, 0x1
const/4 v11, -0x1
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v14, 0x0
.line 750
invoke-static {v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$300(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
move-result-wide v15
iget-wide v3, v7, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 743
move-wide/from16 v17, v3
move-wide/from16 v19, v1
invoke-virtual/range {v8 .. v20}, 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 753
return-void
.end method
.method private suppressRead()Z
.registers 2
.line 506
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
if-nez v0, :cond_d
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_b
goto :goto_d
:cond_b
const/4 v0, 0x0
goto :goto_e
:cond_d
:goto_d
const/4 v0, 0x1
:goto_e
return v0
.end method
# virtual methods
.method public continueLoading(J)Z
.registers 5
.param p1, "playbackPositionUs" # J
.line 321
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
if-nez v0, :cond_24
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingDeferredRetry:Z
if-nez v0, :cond_24
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
if-eqz v0, :cond_11
iget v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
if-nez v0, :cond_11
goto :goto_24
.line 324
:cond_11
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ConditionVariable;->open()Z
move-result v0
.line 325
.local v0, "continuedLoading":Z
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v1
if-nez v1, :cond_23
.line 326
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->startLoading()V
.line 327
const/4 v0, 0x1
.line 329
:cond_23
return v0
.line 322
.end local v0 # "continuedLoading":Z
:cond_24
:goto_24
const/4 v0, 0x0
return v0
.end method
.method public discardBuffer(JZ)V
.registers 9
.param p1, "positionUs" # J
.param p3, "toKeyframe" # Z
.line 304
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->isPendingReset()Z
move-result v0
if-eqz v0, :cond_7
.line 305
return-void
.line 307
:cond_7
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
iget-object v0, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->trackEnabledStates:[Z
.line 308
.local v0, "trackEnabledStates":[Z
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v1
.line 309
.local v1, "trackCount":I
const/4 v2, 0x0
.local v2, "i":I
:goto_11
if-ge v2, v1, :cond_1f
.line 310
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v3, v3, v2
aget-boolean v4, v0, v2
invoke-virtual {v3, p1, p2, p3, v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardTo(JZZ)V
.line 309
add-int/lit8 v2, v2, 0x1
goto :goto_11
.line 312
.end local v2 # "i":I
:cond_1f
return-void
.end method
.method public endTracks()V
.registers 3
.line 618
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueuesBuilt:Z
.line 619
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeFinishPrepareRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 620
return-void
.end method
.method public getAdjustedSeekPositionUs(JLcom/google/android/exoplayer2/SeekParameters;)J
.registers 14
.param p1, "positionUs" # J
.param p3, "seekParameters" # Lcom/google/android/exoplayer2/SeekParameters;
.line 416
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
iget-object v0, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 417
.local v0, "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
invoke-interface {v0}, Lcom/google/android/exoplayer2/extractor/SeekMap;->isSeekable()Z
move-result v1
if-nez v1, :cond_f
.line 419
const-wide/16 v1, 0x0
return-wide v1
.line 421
:cond_f
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/extractor/SeekMap;->getSeekPoints(J)Lcom/google/android/exoplayer2/extractor/SeekMap$SeekPoints;
move-result-object v1
.line 422
.local v1, "seekPoints":Lcom/google/android/exoplayer2/extractor/SeekMap$SeekPoints;
iget-object v2, v1, Lcom/google/android/exoplayer2/extractor/SeekMap$SeekPoints;->first:Lcom/google/android/exoplayer2/extractor/SeekPoint;
iget-wide v6, v2, Lcom/google/android/exoplayer2/extractor/SeekPoint;->timeUs:J
iget-object v2, v1, Lcom/google/android/exoplayer2/extractor/SeekMap$SeekPoints;->second:Lcom/google/android/exoplayer2/extractor/SeekPoint;
iget-wide v8, v2, Lcom/google/android/exoplayer2/extractor/SeekPoint;->timeUs:J
move-wide v3, p1
move-object v5, p3
invoke-static/range {v3 .. v9}, Lcom/google/android/exoplayer2/util/Util;->resolveSeekPositionUs(JLcom/google/android/exoplayer2/SeekParameters;JJ)J
move-result-wide v2
return-wide v2
.end method
.method public getBufferedPositionUs()J
.registers 10
.line 353
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
iget-object v0, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->trackIsAudioVideoFlags:[Z
.line 354
.local v0, "trackIsAudioVideoFlags":[Z
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
const-wide/high16 v2, -0x8000000000000000L
if-eqz v1, :cond_d
.line 355
return-wide v2
.line 356
:cond_d
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->isPendingReset()Z
move-result v1
if-eqz v1, :cond_16
.line 357
iget-wide v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
return-wide v1
.line 359
:cond_16
const-wide v4, 0x7fffffffffffffffL
.line 360
.local v4, "largestQueuedTimestampUs":J
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->haveAudioVideoTracks:Z
if-eqz v1, :cond_47
.line 362
const-wide v4, 0x7fffffffffffffffL
.line 363
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v1
.line 364
.local v1, "trackCount":I
const/4 v6, 0x0
.local v6, "i":I
:goto_28
if-ge v6, v1, :cond_47
.line 365
aget-boolean v7, v0, v6
if-eqz v7, :cond_44
iget-object v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v7, v7, v6
invoke-virtual {v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->isLastSampleQueued()Z
move-result v7
if-nez v7, :cond_44
.line 366
iget-object v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v7, v7, v6
.line 367
invoke-virtual {v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v7
.line 366
invoke-static {v4, v5, v7, v8}, Ljava/lang/Math;->min(JJ)J
move-result-wide v4
.line 364
:cond_44
add-int/lit8 v6, v6, 0x1
goto :goto_28
.line 371
.end local v1 # "trackCount":I
.end local v6 # "i":I
:cond_47
const-wide v6, 0x7fffffffffffffffL
cmp-long v1, v4, v6
if-nez v1, :cond_54
.line 372
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getLargestQueuedTimestampUs()J
move-result-wide v4
.line 374
:cond_54
cmp-long v1, v4, v2
if-nez v1, :cond_5b
iget-wide v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
goto :goto_5c
:cond_5b
move-wide v1, v4
:goto_5c
return-wide v1
.end method
.method public getNextLoadPositionUs()J
.registers 3
.line 334
iget v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
if-nez v0, :cond_7
const-wide/high16 v0, -0x8000000000000000L
goto :goto_b
:cond_7
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getBufferedPositionUs()J
move-result-wide v0
:goto_b
return-wide v0
.end method
.method public synthetic getStreamKeys(Lcom/google/android/exoplayer2/trackselection/TrackSelection;)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/trackselection/TrackSelection;",
")",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/offline/StreamKey;",
">;"
}
.end annotation
invoke-static {p0, p1}, Lcom/google/android/exoplayer2/source/MediaPeriod$-CC;->$default$getStreamKeys(Lcom/google/android/exoplayer2/source/MediaPeriod;Lcom/google/android/exoplayer2/trackselection/TrackSelection;)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public getTrackGroups()Lcom/google/android/exoplayer2/source/TrackGroupArray;
.registers 2
.line 223
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
iget-object v0, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->tracks:Lcom/google/android/exoplayer2/source/TrackGroupArray;
return-object v0
.end method
.method icyTrack()Lcom/google/android/exoplayer2/extractor/TrackOutput;
.registers 4
.line 631
new-instance v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-direct {v0, v1, v2}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;-><init>(IZ)V
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepareTrackOutput(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;)Lcom/google/android/exoplayer2/extractor/TrackOutput;
move-result-object v0
return-object v0
.end method
.method isReady(I)Z
.registers 3
.param p1, "track" # I
.line 429
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->suppressRead()Z
move-result v0
if-nez v0, :cond_16
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
if-nez v0, :cond_14
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->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_16
:cond_14
const/4 v0, 0x1
goto :goto_17
:cond_16
const/4 v0, 0x0
:goto_17
return v0
.end method
.method public synthetic lambda$new$0$ExtractorMediaPeriod()V
.registers 2
.line 172
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->released:Z
if-nez v0, :cond_f
.line 173
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v0, p0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 175
:cond_f
return-void
.end method
.method maybeThrowError()V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 433
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataType:I
invoke-interface {v1, v2}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getMinimumLoadableRetryCount(I)I
move-result v1
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/upstream/Loader;->maybeThrowError(I)V
.line 434
return-void
.end method
.method public maybeThrowPrepareError()V
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 218
invoke-virtual {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeThrowError()V
.line 219
return-void
.end method
.method public onLoadCanceled(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJZ)V
.registers 27
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.param p6, "released" # Z
move-object/from16 v0, p0
move-wide/from16 v14, p2
move-wide/from16 v16, p4
.line 543
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 544
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/DataSpec;
move-result-object v2
.line 545
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v3
invoke-virtual {v3}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getLastOpenedUri()Landroid/net/Uri;
move-result-object v3
.line 546
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v4
invoke-virtual {v4}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getLastResponseHeaders()Ljava/util/Map;
move-result-object v4
.line 552
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$300(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
move-result-wide v10
iget-wide v12, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 556
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v5
invoke-virtual {v5}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getBytesRead()J
move-result-wide v18
.line 543
const/4 v5, 0x1
const/4 v6, -0x1
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
invoke-virtual/range {v1 .. v19}, 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 557
if-nez p6, :cond_54
.line 558
invoke-direct/range {p0 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->copyLengthFromLoader(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)V
.line 559
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v2, v1
const/4 v3, 0x0
:goto_3b
if-ge v3, v2, :cond_45
aget-object v4, v1, v3
.line 560
.local v4, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 559
.end local v4 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v3, v3, 0x1
goto :goto_3b
.line 562
:cond_45
iget v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
if-lez v1, :cond_54
.line 563
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v1, v0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 566
:cond_54
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/ExtractorMediaPeriod$ExtractingLoadable;
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/ExtractorMediaPeriod;->onLoadCanceled(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJZ)V
return-void
.end method
.method public onLoadCompleted(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJ)V
.registers 33
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.line 514
move-object/from16 v0, p0
iget-wide v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
cmp-long v5, v1, v3
if-nez v5, :cond_30
.line 515
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 516
.local v1, "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getLargestQueuedTimestampUs()J
move-result-wide v2
.line 517
.local v2, "largestQueuedTimestampUs":J
const-wide/high16 v4, -0x8000000000000000L
cmp-long v6, v2, v4
if-nez v6, :cond_22
const-wide/16 v4, 0x0
goto :goto_25
:cond_22
const-wide/16 v4, 0x2710
add-long/2addr v4, v2
:goto_25
iput-wide v4, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 519
iget-object v6, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->listener:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;
invoke-interface {v1}, Lcom/google/android/exoplayer2/extractor/SeekMap;->isSeekable()Z
move-result v7
invoke-interface {v6, v4, v5, v7}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$Listener;->onSourceInfoRefreshed(JZ)V
.line 521
.end local v1 # "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
.end local v2 # "largestQueuedTimestampUs":J
:cond_30
iget-object v8, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 522
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/DataSpec;
move-result-object v9
.line 523
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getLastOpenedUri()Landroid/net/Uri;
move-result-object v10
.line 524
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getLastResponseHeaders()Ljava/util/Map;
move-result-object v11
const/4 v12, 0x1
const/4 v13, -0x1
const/4 v14, 0x0
const/4 v15, 0x0
const/16 v16, 0x0
.line 530
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$300(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
move-result-wide v17
iget-wide v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
move-wide/from16 v19, v1
.line 534
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getBytesRead()J
move-result-wide v25
.line 521
move-wide/from16 v21, p2
move-wide/from16 v23, p4
invoke-virtual/range {v8 .. v26}, 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 535
invoke-direct/range {p0 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->copyLengthFromLoader(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)V
.line 536
const/4 v1, 0x1
iput-boolean v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
.line 537
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
invoke-interface {v1, v0}, Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.line 538
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/ExtractorMediaPeriod$ExtractingLoadable;
move-object v0, p0
move-wide v2, p2
move-wide v4, p4
invoke-virtual/range {v0 .. v5}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->onLoadCompleted(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJ)V
return-void
.end method
.method public onLoadError(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJLjava/io/IOException;I)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.registers 36
.param p1, "loadable" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.param p6, "error" # Ljava/io/IOException;
.param p7, "errorCount" # I
.line 575
move-object/from16 v0, p0
invoke-direct/range {p0 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->copyLengthFromLoader(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)V
.line 577
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v2, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataType:I
iget-wide v3, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 578
move-object/from16 v5, p6
move/from16 v6, p7
invoke-interface/range {v1 .. v6}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getRetryDelayMsFor(IJLjava/io/IOException;I)J
move-result-wide v1
.line 579
.local v1, "retryDelayMs":J
const/4 v3, 0x1
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
cmp-long v6, v1, v4
if-nez v6, :cond_22
.line 580
sget-object v4, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY_FATAL:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-object/from16 v6, p1
.local v4, "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
goto :goto_3e
.line 582
.end local v4 # "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:cond_22
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getExtractedSamplesCount()I
move-result v4
.line 583
.local v4, "extractedSamplesCount":I
iget v5, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractedSamplesCountAtStartOfLoad:I
if-le v4, v5, :cond_2c
const/4 v5, 0x1
goto :goto_2d
:cond_2c
const/4 v5, 0x0
.line 584
.local v5, "madeProgress":Z
:goto_2d
nop
.line 585
move-object/from16 v6, p1
invoke-direct {v0, v6, v4}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->configureRetry(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;I)Z
move-result v7
if-eqz v7, :cond_3b
.line 586
invoke-static {v5, v1, v2}, Lcom/google/android/exoplayer2/upstream/Loader;->createRetryAction(ZJ)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-result-object v7
goto :goto_3d
:cond_3b
sget-object v7, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_3d
move-object v4, v7
.line 590
.end local v5 # "madeProgress":Z
.local v4, "loadErrorAction":Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_3e
iget-object v7, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 591
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/DataSpec;
move-result-object v8
.line 592
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v5
invoke-virtual {v5}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getLastOpenedUri()Landroid/net/Uri;
move-result-object v9
.line 593
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v5
invoke-virtual {v5}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getLastResponseHeaders()Ljava/util/Map;
move-result-object v10
const/4 v11, 0x1
const/4 v12, -0x1
const/4 v13, 0x0
.line 599
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$300(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
move-result-wide v16
iget-wide v14, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->durationUs:J
.line 603
invoke-static/range {p1 .. p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
move-result-object v19
invoke-virtual/range {v19 .. v19}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getBytesRead()J
move-result-wide v24
.line 605
invoke-virtual {v4}, Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;->isRetry()Z
move-result v19
.line 590
xor-int/lit8 v27, v19, 0x1
move-wide/from16 v19, v14
const/4 v3, 0x0
move v14, v3
const/4 v3, 0x0
move-object v15, v3
move-wide/from16 v18, v19
move-wide/from16 v20, p2
move-wide/from16 v22, p4
move-object/from16 v26, p6
invoke-virtual/range {v7 .. v27}, 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 606
return-object v4
.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/ExtractorMediaPeriod$ExtractingLoadable;
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/ExtractorMediaPeriod;->onLoadError(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJLjava/io/IOException;I)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
move-result-object p1
return-object p1
.end method
.method public onLoaderReleased()V
.registers 5
.line 203
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v1, v0
const/4 v2, 0x0
:goto_4
if-ge v2, v1, :cond_e
aget-object v3, v0, v2
.line 204
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 203
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_4
.line 206
:cond_e
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;->release()V
.line 207
return-void
.end method
.method public onUpstreamFormatChanged(Lcom/google/android/exoplayer2/Format;)V
.registers 4
.param p1, "format" # Lcom/google/android/exoplayer2/Format;
.line 638
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeFinishPrepareRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 639
return-void
.end method
.method public prepare(Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;J)V
.registers 5
.param p1, "callback" # Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.param p2, "positionUs" # J
.line 211
iput-object p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.line 212
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ConditionVariable;->open()Z
.line 213
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->startLoading()V
.line 214
return-void
.end method
.method readData(ILcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Z)I
.registers 14
.param p1, "track" # I
.param p2, "formatHolder" # Lcom/google/android/exoplayer2/FormatHolder;
.param p3, "buffer" # Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;
.param p4, "formatRequired" # Z
.line 438
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->suppressRead()Z
move-result v0
const/4 v1, -0x3
if-eqz v0, :cond_8
.line 439
return v1
.line 441
:cond_8
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeNotifyDownstreamFormat(I)V
.line 442
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v2, v0, p1
iget-boolean v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
iget-wide v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
.line 443
move-object v3, p2
move-object v4, p3
move v5, p4
invoke-virtual/range {v2 .. v8}, Lcom/google/android/exoplayer2/source/SampleQueue;->read(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;ZZJ)I
move-result v0
.line 445
.local v0, "result":I
if-ne v0, v1, :cond_1f
.line 446
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeStartDeferredRetry(I)V
.line 448
:cond_1f
return v0
.end method
.method public readDiscontinuity()J
.registers 3
.line 339
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifiedReadingStarted:Z
if-nez v0, :cond_c
.line 340
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->readingStarted()V
.line 341
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifiedReadingStarted:Z
.line 343
:cond_c
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
if-eqz v0, :cond_22
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
if-nez v0, :cond_1c
.line 344
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getExtractedSamplesCount()I
move-result v0
iget v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->extractedSamplesCountAtStartOfLoad:I
if-le v0, v1, :cond_22
.line 345
:cond_1c
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
.line 346
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
return-wide v0
.line 348
:cond_22
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
return-wide v0
.end method
.method public reevaluateBuffer(J)V
.registers 3
.param p1, "positionUs" # J
.line 317
return-void
.end method
.method public release()V
.registers 5
.line 187
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepared:Z
if-eqz v0, :cond_12
.line 190
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->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 191
.local v3, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToEnd()V
.line 190
.end local v3 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v2, v2, 0x1
goto :goto_8
.line 194
:cond_12
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->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 195
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->handler:Landroid/os/Handler;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
.line 196
iput-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->callback:Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.line 197
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->released:Z
.line 198
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->eventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->mediaPeriodReleased()V
.line 199
return-void
.end method
.method public seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.registers 4
.param p1, "seekMap" # Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 624
iput-object p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 625
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeFinishPrepareRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 626
return-void
.end method
.method public seekToUs(J)J
.registers 10
.param p1, "positionUs" # J
.line 380
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v0
.line 381
.local v0, "preparedState":Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
iget-object v1, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 382
.local v1, "seekMap":Lcom/google/android/exoplayer2/extractor/SeekMap;
iget-object v2, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->trackIsAudioVideoFlags:[Z
.line 384
.local v2, "trackIsAudioVideoFlags":[Z
invoke-interface {v1}, Lcom/google/android/exoplayer2/extractor/SeekMap;->isSeekable()Z
move-result v3
if-eqz v3, :cond_10
move-wide v3, p1
goto :goto_12
:cond_10
const-wide/16 v3, 0x0
:goto_12
move-wide p1, v3
.line 386
const/4 v3, 0x0
iput-boolean v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
.line 387
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->lastSeekPositionUs:J
.line 388
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->isPendingReset()Z
move-result v4
if-eqz v4, :cond_21
.line 390
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 391
return-wide p1
.line 395
:cond_21
iget v4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->dataType:I
const/4 v5, 0x7
if-eq v4, v5, :cond_2d
.line 396
invoke-direct {p0, v2, p1, p2}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seekInsideBufferUs([ZJ)Z
move-result v4
if-eqz v4, :cond_2d
.line 397
return-wide p1
.line 401
:cond_2d
iput-boolean v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingDeferredRetry:Z
.line 402
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingResetPositionUs:J
.line 403
iput-boolean v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
.line 404
iget-object v4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v4
if-eqz v4, :cond_41
.line 405
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/upstream/Loader;->cancelLoading()V
goto :goto_4e
.line 407
:cond_41
iget-object v4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v5, v4
:goto_44
if-ge v3, v5, :cond_4e
aget-object v6, v4, v3
.line 408
.local v6, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 407
.end local v6 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v3, v3, 0x1
goto :goto_44
.line 411
:cond_4e
:goto_4e
return-wide p1
.end method
.method public selectTracks([Lcom/google/android/exoplayer2/trackselection/TrackSelection;[Z[Lcom/google/android/exoplayer2/source/SampleStream;[ZJ)J
.registers 23
.param p1, "selections" # [Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.param p2, "mayRetainStreamFlags" # [Z
.param p3, "streams" # [Lcom/google/android/exoplayer2/source/SampleStream;
.param p4, "streamResetFlags" # [Z
.param p5, "positionUs" # J
.line 233
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p3
move-wide/from16 v3, p5
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->getPreparedState()Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
move-result-object v5
.line 234
.local v5, "preparedState":Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;
iget-object v6, v5, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->tracks:Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 235
.local v6, "tracks":Lcom/google/android/exoplayer2/source/TrackGroupArray;
iget-object v7, v5, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$PreparedState;->trackEnabledStates:[Z
.line 236
.local v7, "trackEnabledStates":[Z
iget v8, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
.line 238
.local v8, "oldEnabledTrackCount":I
const/4 v9, 0x0
.local v9, "i":I
:goto_13
array-length v10, v1
const/4 v11, 0x0
const/4 v12, 0x1
if-ge v9, v10, :cond_3e
.line 239
aget-object v10, v2, v9
if-eqz v10, :cond_3b
aget-object v10, v1, v9
if-eqz v10, :cond_24
aget-boolean v10, p2, v9
if-nez v10, :cond_3b
.line 240
:cond_24
aget-object v10, v2, v9
check-cast v10, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$SampleStreamImpl;
invoke-static {v10}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$SampleStreamImpl;->access$000(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$SampleStreamImpl;)I
move-result v10
.line 241
.local v10, "track":I
aget-boolean v13, v7, v10
invoke-static {v13}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 242
iget v13, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
sub-int/2addr v13, v12
iput v13, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
.line 243
aput-boolean v11, v7, v10
.line 244
const/4 v11, 0x0
aput-object v11, v2, v9
.line 238
.end local v10 # "track":I
:cond_3b
add-int/lit8 v9, v9, 0x1
goto :goto_13
.line 249
.end local v9 # "i":I
:cond_3e
iget-boolean v9, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seenFirstTrackSelection:Z
if-eqz v9, :cond_45
if-nez v8, :cond_4d
goto :goto_4b
:cond_45
const-wide/16 v9, 0x0
cmp-long v13, v3, v9
if-eqz v13, :cond_4d
:goto_4b
const/4 v9, 0x1
goto :goto_4e
:cond_4d
const/4 v9, 0x0
.line 251
.local v9, "seekRequired":Z
:goto_4e
const/4 v10, 0x0
.local v10, "i":I
:goto_4f
array-length v13, v1
if-ge v10, v13, :cond_b1
.line 252
aget-object v13, v2, v10
if-nez v13, :cond_ac
aget-object v13, v1, v10
if-eqz v13, :cond_ac
.line 253
aget-object v13, v1, v10
.line 254
.local v13, "selection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
invoke-interface {v13}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v14
if-ne v14, v12, :cond_64
const/4 v14, 0x1
goto :goto_65
:cond_64
const/4 v14, 0x0
:goto_65
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 255
invoke-interface {v13, v11}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getIndexInTrackGroup(I)I
move-result v14
if-nez v14, :cond_70
const/4 v14, 0x1
goto :goto_71
:cond_70
const/4 v14, 0x0
:goto_71
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 256
invoke-interface {v13}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v14
invoke-virtual {v6, v14}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->indexOf(Lcom/google/android/exoplayer2/source/TrackGroup;)I
move-result v14
.line 257
.local v14, "track":I
aget-boolean v15, v7, v14
xor-int/2addr v15, v12
invoke-static {v15}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 258
iget v15, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
add-int/2addr v15, v12
iput v15, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
.line 259
aput-boolean v12, v7, v14
.line 260
new-instance v15, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$SampleStreamImpl;
invoke-direct {v15, v0, v14}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$SampleStreamImpl;-><init>(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;I)V
aput-object v15, v2, v10
.line 261
aput-boolean v12, p4, v10
.line 263
if-nez v9, :cond_ac
.line 264
iget-object v15, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v15, v15, v14
.line 265
.local v15, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v15}, Lcom/google/android/exoplayer2/source/SampleQueue;->rewind()V
.line 270
invoke-virtual {v15, v3, v4, v12, v12}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v11
const/4 v12, -0x1
if-ne v11, v12, :cond_aa
.line 271
invoke-virtual {v15}, Lcom/google/android/exoplayer2/source/SampleQueue;->getReadIndex()I
move-result v11
if-eqz v11, :cond_aa
const/4 v11, 0x1
goto :goto_ab
:cond_aa
const/4 v11, 0x0
:goto_ab
move v9, v11
.line 251
.end local v13 # "selection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v14 # "track":I
.end local v15 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
:cond_ac
add-int/lit8 v10, v10, 0x1
const/4 v11, 0x0
const/4 v12, 0x1
goto :goto_4f
.line 275
.end local v10 # "i":I
:cond_b1
iget v10, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->enabledTrackCount:I
if-nez v10, :cond_e2
.line 276
const/4 v10, 0x0
iput-boolean v10, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->pendingDeferredRetry:Z
.line 277
iput-boolean v10, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->notifyDiscontinuity:Z
.line 278
iget-object v11, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v11}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v11
if-eqz v11, :cond_d5
.line 280
iget-object v11, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v12, v11
:goto_c5
if-ge v10, v12, :cond_cf
aget-object v13, v11, v10
.line 281
.local v13, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v13}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToEnd()V
.line 280
.end local v13 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v10, v10, 0x1
goto :goto_c5
.line 283
:cond_cf
iget-object v10, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v10}, Lcom/google/android/exoplayer2/upstream/Loader;->cancelLoading()V
goto :goto_f6
.line 285
:cond_d5
iget-object v11, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
array-length v12, v11
:goto_d8
if-ge v10, v12, :cond_f6
aget-object v13, v11, v10
.line 286
.restart local v13 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v13}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 285
.end local v13 # "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
add-int/lit8 v10, v10, 0x1
goto :goto_d8
.line 289
:cond_e2
if-eqz v9, :cond_f6
.line 290
invoke-virtual {v0, v3, v4}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seekToUs(J)J
move-result-wide v3
.line 292
.end local p5 # "positionUs":J
.local v3, "positionUs":J
const/4 v10, 0x0
.restart local v10 # "i":I
:goto_e9
array-length v11, v2
if-ge v10, v11, :cond_f6
.line 293
aget-object v11, v2, v10
if-eqz v11, :cond_f3
.line 294
const/4 v11, 0x1
aput-boolean v11, p4, v10
.line 292
:cond_f3
add-int/lit8 v10, v10, 0x1
goto :goto_e9
.line 298
.end local v10 # "i":I
:cond_f6
:goto_f6
const/4 v10, 0x1
iput-boolean v10, v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->seenFirstTrackSelection:Z
.line 299
return-wide v3
.end method
.method skipData(IJ)I
.registers 8
.param p1, "track" # I
.param p2, "positionUs" # J
.line 452
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->suppressRead()Z
move-result v0
if-eqz v0, :cond_8
.line 453
const/4 v0, 0x0
return v0
.line 455
:cond_8
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeNotifyDownstreamFormat(I)V
.line 456
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->sampleQueues:[Lcom/google/android/exoplayer2/source/SampleQueue;
aget-object v0, v0, p1
.line 458
.local v0, "sampleQueue":Lcom/google/android/exoplayer2/source/SampleQueue;
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->loadingFinished:Z
if-eqz v1, :cond_20
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->getLargestQueuedTimestampUs()J
move-result-wide v1
cmp-long v3, p2, v1
if-lez v3, :cond_20
.line 459
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceToEnd()I
move-result v1
.local v1, "skipCount":I
goto :goto_29
.line 461
.end local v1 # "skipCount":I
:cond_20
const/4 v1, 0x1
invoke-virtual {v0, p2, p3, v1, v1}, Lcom/google/android/exoplayer2/source/SampleQueue;->advanceTo(JZZ)I
move-result v1
.line 462
.restart local v1 # "skipCount":I
const/4 v2, -0x1
if-ne v1, v2, :cond_29
.line 463
const/4 v1, 0x0
.line 466
:cond_29
:goto_29
if-nez v1, :cond_2e
.line 467
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->maybeStartDeferredRetry(I)V
.line 469
:cond_2e
return v1
.end method
.method public track(II)Lcom/google/android/exoplayer2/extractor/TrackOutput;
.registers 5
.param p1, "id" # I
.param p2, "type" # I
.line 613
new-instance v0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;
const/4 v1, 0x0
invoke-direct {v0, p1, v1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;-><init>(IZ)V
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->prepareTrackOutput(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$TrackId;)Lcom/google/android/exoplayer2/extractor/TrackOutput;
move-result-object v0
return-object v0
.end method