SsDownloader.smali
.class public final Lcom/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader;
.super Lcom/google/android/exoplayer2/offline/SegmentDownloader;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/offline/SegmentDownloader<",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;)V
.registers 3
.line 68
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/offline/SegmentDownloader;-><init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;)V
return-void
.end method
# virtual methods
.method protected final getAllSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Z)Ljava/util/List;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/DataSource;",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
"Z)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/offline/SegmentDownloader$Segment;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/InterruptedException;,
Ljava/io/IOException;
}
.end annotation
.line 84
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
const/4 v1, 0x0
const/4 v2, 0x0
.line 85
:goto_7
iget-object v3, p2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->streamElements:[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;
array-length v3, v3
if-ge v2, v3, :cond_2d
.line 86
iget-object v3, p2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->streamElements:[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;
aget-object v3, v3, v2
const/4 v4, 0x0
.line 87
:goto_11
iget-object v5, v3, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->formats:[Lcom/google/android/exoplayer2/Format;
array-length v5, v5
if-ge v4, v5, :cond_2a
const/4 v5, 0x1
new-array v5, v5, [Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;
.line 88
new-instance v6, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;
invoke-direct {v6, v2, v4}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;-><init>(II)V
aput-object v6, v5, v1
invoke-virtual {p0, p1, p2, v5, p3}, Lcom/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader;->getSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;Z)Ljava/util/List;
move-result-object v5
invoke-virtual {v0, v5}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
add-int/lit8 v4, v4, 0x1
goto :goto_11
:cond_2a
add-int/lit8 v2, v2, 0x1
goto :goto_7
:cond_2d
return-object v0
.end method
.method public final bridge synthetic getAllSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Ljava/lang/Object;Z)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/InterruptedException;,
Ljava/io/IOException;
}
.end annotation
.line 62
check-cast p2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
invoke-virtual {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader;->getAllSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;Z)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public final getManifest(Lcom/google/android/exoplayer2/upstream/DataSource;Landroid/net/Uri;)Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 73
new-instance v0, Lcom/google/android/exoplayer2/upstream/DataSpec;
const/4 v1, 0x3
invoke-direct {v0, p2, v1}, Lcom/google/android/exoplayer2/upstream/DataSpec;-><init>(Landroid/net/Uri;I)V
.line 75
new-instance p2, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
new-instance v1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;
invoke-direct {v1}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser;-><init>()V
const/4 v2, 0x4
invoke-direct {p2, p1, v0, v2, v1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/upstream/DataSpec;ILcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
.line 77
invoke-virtual {p2}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->load()V
.line 78
invoke-virtual {p2}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResult()Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
return-object p1
.end method
.method public final bridge synthetic getManifest(Lcom/google/android/exoplayer2/upstream/DataSource;Landroid/net/Uri;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 62
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader;->getManifest(Lcom/google/android/exoplayer2/upstream/DataSource;Landroid/net/Uri;)Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
move-result-object p1
return-object p1
.end method
.method protected final getSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;Z)Ljava/util/List;
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/DataSource;",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;",
"[",
"Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;",
"Z)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/offline/SegmentDownloader$Segment;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/InterruptedException;,
Ljava/io/IOException;
}
.end annotation
.line 98
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 99
array-length p4, p3
const/4 v0, 0x0
const/4 v1, 0x0
:goto_8
if-ge v1, p4, :cond_34
aget-object v2, p3, v1
.line 100
iget-object v3, p2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;->streamElements:[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;
iget v4, v2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;->streamElementIndex:I
aget-object v3, v3, v4
const/4 v4, 0x0
.line 101
:goto_13
iget v5, v3, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->chunkCount:I
if-ge v4, v5, :cond_31
.line 102
new-instance v5, Lcom/google/android/exoplayer2/offline/SegmentDownloader$Segment;
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->getStartTimeUs(I)J
move-result-wide v6
new-instance v8, Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v9, v2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;->trackIndex:I
.line 103
invoke-virtual {v3, v9, v4}, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest$StreamElement;->buildRequestUri(II)Landroid/net/Uri;
move-result-object v9
invoke-direct {v8, v9}, Lcom/google/android/exoplayer2/upstream/DataSpec;-><init>(Landroid/net/Uri;)V
invoke-direct {v5, v6, v7, v8}, Lcom/google/android/exoplayer2/offline/SegmentDownloader$Segment;-><init>(JLcom/google/android/exoplayer2/upstream/DataSpec;)V
.line 102
invoke-virtual {p1, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v4, v4, 0x1
goto :goto_13
:cond_31
add-int/lit8 v1, v1, 0x1
goto :goto_8
:cond_34
return-object p1
.end method
.method public final bridge synthetic getSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Ljava/lang/Object;[Ljava/lang/Object;Z)Ljava/util/List;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/InterruptedException;,
Ljava/io/IOException;
}
.end annotation
.line 62
check-cast p2, Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;
check-cast p3, [Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;
invoke-virtual {p0, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader;->getSegments(Lcom/google/android/exoplayer2/upstream/DataSource;Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest;[Lcom/google/android/exoplayer2/source/smoothstreaming/manifest/TrackKey;Z)Ljava/util/List;
move-result-object p1
return-object p1
.end method