ExtractorMediaPeriod$ExtractingLoadable.smali
.class final Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.super Ljava/lang/Object;
.source "ExtractorMediaPeriod.java"
# interfaces
.implements Lcom/google/android/exoplayer2/upstream/Loader$Loadable;
.implements Lcom/google/android/exoplayer2/source/IcyDataSource$Listener;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x10
name = "ExtractingLoadable"
.end annotation
# instance fields
.field private final dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
.field private dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.field private final extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
.field private final extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.field private icyTrackOutput:Lcom/google/android/exoplayer2/extractor/TrackOutput;
.field private length:J
.field private volatile loadCanceled:Z
.field private final loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
.field private pendingExtractorSeek:Z
.field private final positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
.field private seekTimeUs:J
.field private seenIcyMetadata:Z
.field final synthetic this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.field private final uri:Landroid/net/Uri;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <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
.registers 9
.param p1, "this$0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.param p2, "uri" # Landroid/net/Uri;
.param p3, "dataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.param p4, "extractorHolder" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
.param p5, "extractorOutput" # Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.param p6, "loadCondition" # Lcom/google/android/exoplayer2/util/ConditionVariable;
.line 901
iput-object p1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 902
iput-object p2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->uri:Landroid/net/Uri;
.line 903
new-instance v0, Lcom/google/android/exoplayer2/upstream/StatsDataSource;
invoke-direct {v0, p3}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
.line 904
iput-object p4, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
.line 905
iput-object p5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
.line 906
iput-object p6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
.line 907
new-instance v0, Lcom/google/android/exoplayer2/extractor/PositionHolder;
invoke-direct {v0}, Lcom/google/android/exoplayer2/extractor/PositionHolder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
.line 908
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->pendingExtractorSeek:Z
.line 909
const-wide/16 v0, -0x1
iput-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->length:J
.line 910
const-wide/16 v0, 0x0
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->buildDataSpec(J)Lcom/google/android/exoplayer2/upstream/DataSpec;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 911
return-void
.end method
.method static synthetic access$100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/DataSpec;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.line 877
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
return-object v0
.end method
.method static synthetic access$200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)Lcom/google/android/exoplayer2/upstream/StatsDataSource;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.line 877
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
return-object v0
.end method
.method static synthetic access$300(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
.registers 3
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.line 877
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seekTimeUs:J
return-wide v0
.end method
.method static synthetic access$400(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;)J
.registers 3
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.line 877
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->length:J
return-wide v0
.end method
.method static synthetic access$500(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;JJ)V
.registers 5
.param p0, "x0" # Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;
.param p1, "x1" # J
.param p3, "x2" # J
.line 877
invoke-direct {p0, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->setLoadPosition(JJ)V
return-void
.end method
.method private buildDataSpec(J)Lcom/google/android/exoplayer2/upstream/DataSpec;
.registers 12
.param p1, "position" # J
.line 987
new-instance v8, Lcom/google/android/exoplayer2/upstream/DataSpec;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->uri:Landroid/net/Uri;
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 991
invoke-static {v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$1200(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Ljava/lang/String;
move-result-object v6
const-wide/16 v4, -0x1
const/16 v7, 0x16
move-object v0, v8
move-wide v2, p1
invoke-direct/range {v0 .. v7}, Lcom/google/android/exoplayer2/upstream/DataSpec;-><init>(Landroid/net/Uri;JJLjava/lang/String;I)V
.line 987
return-object v8
.end method
.method private setLoadPosition(JJ)V
.registers 6
.param p1, "position" # J
.param p3, "timeUs" # J
.line 998
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
iput-wide p1, v0, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 999
iput-wide p3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seekTimeUs:J
.line 1000
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->pendingExtractorSeek:Z
.line 1001
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seenIcyMetadata:Z
.line 1002
return-void
.end method
# virtual methods
.method public cancelLoad()V
.registers 2
.line 917
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->loadCanceled:Z
.line 918
return-void
.end method
.method public load()V
.registers 15
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 922
const/4 v0, 0x0
.line 923
.local v0, "result":I
:goto_1
if-nez v0, :cond_fb
iget-boolean v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->loadCanceled:Z
if-nez v1, :cond_fb
.line 924
const/4 v1, 0x0
.line 926
.local v1, "input":Lcom/google/android/exoplayer2/extractor/ExtractorInput;
const/4 v2, 0x1
:try_start_9
iget-object v3, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
iget-wide v3, v3, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 927
.local v3, "position":J
invoke-direct {p0, v3, v4}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->buildDataSpec(J)Lcom/google/android/exoplayer2/upstream/DataSpec;
move-result-object v5
iput-object v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 928
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
invoke-virtual {v6, v5}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->open(Lcom/google/android/exoplayer2/upstream/DataSpec;)J
move-result-wide v5
iput-wide v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->length:J
.line 929
const-wide/16 v7, -0x1
cmp-long v9, v5, v7
if-eqz v9, :cond_24
.line 930
add-long/2addr v5, v3
iput-wide v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->length:J
.line 932
:cond_24
iget-object v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getUri()Landroid/net/Uri;
move-result-object v5
invoke-static {v5}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/net/Uri;
move-object v11, v5
.line 933
.local v11, "uri":Landroid/net/Uri;
iget-object v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/upstream/StatsDataSource;->getResponseHeaders()Ljava/util/Map;
move-result-object v6
invoke-static {v6}, Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;->parse(Ljava/util/Map;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
move-result-object v6
invoke-static {v5, v6}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$602(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
.line 934
iget-object v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
.line 935
.local v5, "extractorDataSource":Lcom/google/android/exoplayer2/upstream/DataSource;
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-static {v6}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$600(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
move-result-object v6
if-eqz v6, :cond_76
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-static {v6}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$600(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
move-result-object v6
iget v6, v6, Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;->metadataInterval:I
const/4 v7, -0x1
if-eq v6, v7, :cond_76
.line 936
new-instance v6, Lcom/google/android/exoplayer2/source/IcyDataSource;
iget-object v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
iget-object v8, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-static {v8}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$600(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;
move-result-object v8
iget v8, v8, Lcom/google/android/exoplayer2/metadata/icy/IcyHeaders;->metadataInterval:I
invoke-direct {v6, v7, v8, p0}, Lcom/google/android/exoplayer2/source/IcyDataSource;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;ILcom/google/android/exoplayer2/source/IcyDataSource$Listener;)V
move-object v5, v6
.line 937
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->icyTrack()Lcom/google/android/exoplayer2/extractor/TrackOutput;
move-result-object v6
iput-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->icyTrackOutput:Lcom/google/android/exoplayer2/extractor/TrackOutput;
.line 938
invoke-static {}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$700()Lcom/google/android/exoplayer2/Format;
move-result-object v7
invoke-interface {v6, v7}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->format(Lcom/google/android/exoplayer2/Format;)V
move-object v12, v5
goto :goto_77
.line 940
:cond_76
move-object v12, v5
.end local v5 # "extractorDataSource":Lcom/google/android/exoplayer2/upstream/DataSource;
.local v12, "extractorDataSource":Lcom/google/android/exoplayer2/upstream/DataSource;
:goto_77
new-instance v13, Lcom/google/android/exoplayer2/extractor/DefaultExtractorInput;
iget-wide v9, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->length:J
move-object v5, v13
move-object v6, v12
move-wide v7, v3
invoke-direct/range {v5 .. v10}, Lcom/google/android/exoplayer2/extractor/DefaultExtractorInput;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;JJ)V
move-object v1, v13
.line 941
iget-object v5, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->extractorHolder:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->extractorOutput:Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
invoke-virtual {v5, v1, v6, v11}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractorHolder;->selectExtractor(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/ExtractorOutput;Landroid/net/Uri;)Lcom/google/android/exoplayer2/extractor/Extractor;
move-result-object v5
.line 942
.local v5, "extractor":Lcom/google/android/exoplayer2/extractor/Extractor;
iget-boolean v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->pendingExtractorSeek:Z
if-eqz v6, :cond_96
.line 943
iget-wide v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seekTimeUs:J
invoke-interface {v5, v3, v4, v6, v7}, Lcom/google/android/exoplayer2/extractor/Extractor;->seek(JJ)V
.line 944
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->pendingExtractorSeek:Z
.line 946
:cond_96
:goto_96
if-nez v0, :cond_d1
iget-boolean v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->loadCanceled:Z
if-nez v6, :cond_d1
.line 947
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/util/ConditionVariable;->block()V
.line 948
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
invoke-interface {v5, v1, v6}, Lcom/google/android/exoplayer2/extractor/Extractor;->read(Lcom/google/android/exoplayer2/extractor/ExtractorInput;Lcom/google/android/exoplayer2/extractor/PositionHolder;)I
move-result v6
move v0, v6
.line 949
invoke-interface {v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v6
iget-object v8, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-static {v8}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$800(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)J
move-result-wide v8
add-long/2addr v8, v3
cmp-long v10, v6, v8
if-lez v10, :cond_96
.line 950
invoke-interface {v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v6
move-wide v3, v6
.line 951
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->loadCondition:Lcom/google/android/exoplayer2/util/ConditionVariable;
invoke-virtual {v6}, Lcom/google/android/exoplayer2/util/ConditionVariable;->close()Z
.line 952
iget-object v6, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-static {v6}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$1000(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Landroid/os/Handler;
move-result-object v6
iget-object v7, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
invoke-static {v7}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$900(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)Ljava/lang/Runnable;
move-result-object v7
invoke-virtual {v6, v7}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:try_end_d0
.catchall {:try_start_9 .. :try_end_d0} :catchall_e6
goto :goto_96
.line 956
.end local v3 # "position":J
.end local v5 # "extractor":Lcom/google/android/exoplayer2/extractor/Extractor;
.end local v11 # "uri":Landroid/net/Uri;
.end local v12 # "extractorDataSource":Lcom/google/android/exoplayer2/upstream/DataSource;
:cond_d1
if-ne v0, v2, :cond_d5
.line 957
const/4 v0, 0x0
goto :goto_de
.line 958
:cond_d5
nop
.line 959
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
invoke-interface {v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v3
iput-wide v3, v2, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
.line 961
:goto_de
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Util;->closeQuietly(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 962
nop
.line 963
.end local v1 # "input":Lcom/google/android/exoplayer2/extractor/ExtractorInput;
goto/16 :goto_1
.line 956
.restart local v1 # "input":Lcom/google/android/exoplayer2/extractor/ExtractorInput;
:catchall_e6
move-exception v3
if-eq v0, v2, :cond_f4
.line 958
if-eqz v1, :cond_f5
.line 959
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->positionHolder:Lcom/google/android/exoplayer2/extractor/PositionHolder;
invoke-interface {v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->getPosition()J
move-result-wide v4
iput-wide v4, v2, Lcom/google/android/exoplayer2/extractor/PositionHolder;->position:J
goto :goto_f5
.line 957
:cond_f4
const/4 v0, 0x0
.line 961
:cond_f5
:goto_f5
iget-object v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->dataSource:Lcom/google/android/exoplayer2/upstream/StatsDataSource;
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Util;->closeQuietly(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.line 962
throw v3
.line 964
.end local v1 # "input":Lcom/google/android/exoplayer2/extractor/ExtractorInput;
:cond_fb
return-void
.end method
.method public onIcyMetadata(Lcom/google/android/exoplayer2/util/ParsableByteArray;)V
.registers 11
.param p1, "metadata" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 972
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seenIcyMetadata:Z
if-nez v0, :cond_8
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seekTimeUs:J
move-wide v3, v0
goto :goto_15
:cond_8
iget-object v0, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->this$0:Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;
.line 973
invoke-static {v0}, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;->access$1100(Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod;)J
move-result-wide v0
iget-wide v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seekTimeUs:J
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
move-wide v3, v0
:goto_15
nop
.line 974
.local v3, "timeUs":J
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
.line 975
.local v0, "length":I
iget-object v1, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->icyTrackOutput:Lcom/google/android/exoplayer2/extractor/TrackOutput;
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/TrackOutput;
.line 976
.local v1, "icyTrackOutput":Lcom/google/android/exoplayer2/extractor/TrackOutput;
invoke-interface {v1, p1, v0}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 977
const/4 v5, 0x1
const/4 v7, 0x0
const/4 v8, 0x0
move-object v2, v1
move v6, v0
invoke-interface/range {v2 .. v8}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleMetadata(JIIILcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;)V
.line 979
const/4 v2, 0x1
iput-boolean v2, p0, Lcom/google/android/exoplayer2/source/ExtractorMediaPeriod$ExtractingLoadable;->seenIcyMetadata:Z
.line 980
return-void
.end method