ChunkExtractorWrapper.smali
.class public final Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;
.super Ljava/lang/Object;
.source "ChunkExtractorWrapper.java"
# interfaces
.implements Lcom/google/android/exoplayer2/extractor/ExtractorOutput;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;,
Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;
}
.end annotation
# instance fields
.field private final bindingTrackOutputs:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;",
">;"
}
.end annotation
.end field
.field private endTimeUs:J
.field public final extractor:Lcom/google/android/exoplayer2/extractor/Extractor;
.field private extractorInitialized:Z
.field private final primaryTrackManifestFormat:Lcom/google/android/exoplayer2/Format;
.field private final primaryTrackType:I
.field private sampleFormats:[Lcom/google/android/exoplayer2/Format;
.field private seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.field private trackOutputProvider:Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/extractor/Extractor;ILcom/google/android/exoplayer2/Format;)V
.registers 5
.param p1, "extractor" # Lcom/google/android/exoplayer2/extractor/Extractor;
.param p2, "primaryTrackType" # I
.param p3, "primaryTrackManifestFormat" # Lcom/google/android/exoplayer2/Format;
.line 79
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 80
iput-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->extractor:Lcom/google/android/exoplayer2/extractor/Extractor;
.line 81
iput p2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->primaryTrackType:I
.line 82
iput-object p3, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->primaryTrackManifestFormat:Lcom/google/android/exoplayer2/Format;
.line 83
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
.line 84
return-void
.end method
# virtual methods
.method public endTracks()V
.registers 4
.line 147
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->size()I
move-result v0
new-array v0, v0, [Lcom/google/android/exoplayer2/Format;
.line 148
.local v0, "sampleFormats":[Lcom/google/android/exoplayer2/Format;
const/4 v1, 0x0
.local v1, "i":I
:goto_9
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v2}, Landroid/util/SparseArray;->size()I
move-result v2
if-ge v1, v2, :cond_20
.line 149
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v2, v1}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;
iget-object v2, v2, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;->sampleFormat:Lcom/google/android/exoplayer2/Format;
aput-object v2, v0, v1
.line 148
add-int/lit8 v1, v1, 0x1
goto :goto_9
.line 151
.end local v1 # "i":I
:cond_20
iput-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->sampleFormats:[Lcom/google/android/exoplayer2/Format;
.line 152
return-void
.end method
.method public getSampleFormats()[Lcom/google/android/exoplayer2/Format;
.registers 2
.line 97
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->sampleFormats:[Lcom/google/android/exoplayer2/Format;
return-object v0
.end method
.method public getSeekMap()Lcom/google/android/exoplayer2/extractor/SeekMap;
.registers 2
.line 90
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
return-object v0
.end method
.method public init(Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;JJ)V
.registers 12
.param p1, "trackOutputProvider" # Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;
.param p2, "startTimeUs" # J
.param p4, "endTimeUs" # J
.line 112
iput-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->trackOutputProvider:Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;
.line 113
iput-wide p4, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->endTimeUs:J
.line 114
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->extractorInitialized:Z
const-wide v1, -0x7fffffffffffffffL # -4.9E-324
const-wide/16 v3, 0x0
if-nez v0, :cond_21
.line 115
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->extractor:Lcom/google/android/exoplayer2/extractor/Extractor;
invoke-interface {v0, p0}, Lcom/google/android/exoplayer2/extractor/Extractor;->init(Lcom/google/android/exoplayer2/extractor/ExtractorOutput;)V
.line 116
cmp-long v0, p2, v1
if-eqz v0, :cond_1d
.line 117
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->extractor:Lcom/google/android/exoplayer2/extractor/Extractor;
invoke-interface {v0, v3, v4, p2, p3}, Lcom/google/android/exoplayer2/extractor/Extractor;->seek(JJ)V
.line 119
:cond_1d
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->extractorInitialized:Z
goto :goto_44
.line 121
:cond_21
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->extractor:Lcom/google/android/exoplayer2/extractor/Extractor;
cmp-long v5, p2, v1
if-nez v5, :cond_29
move-wide v1, v3
goto :goto_2a
:cond_29
move-wide v1, p2
:goto_2a
invoke-interface {v0, v3, v4, v1, v2}, Lcom/google/android/exoplayer2/extractor/Extractor;->seek(JJ)V
.line 122
const/4 v0, 0x0
.local v0, "i":I
:goto_2e
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v1}, Landroid/util/SparseArray;->size()I
move-result v1
if-ge v0, v1, :cond_44
.line 123
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v1, v0}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;
invoke-virtual {v1, p1, p4, p5}, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;->bind(Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;J)V
.line 122
add-int/lit8 v0, v0, 0x1
goto :goto_2e
.line 126
.end local v0 # "i":I
:cond_44
:goto_44
return-void
.end method
.method public seekMap(Lcom/google/android/exoplayer2/extractor/SeekMap;)V
.registers 2
.param p1, "seekMap" # Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 156
iput-object p1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->seekMap:Lcom/google/android/exoplayer2/extractor/SeekMap;
.line 157
return-void
.end method
.method public track(II)Lcom/google/android/exoplayer2/extractor/TrackOutput;
.registers 7
.param p1, "id" # I
.param p2, "type" # I
.line 132
iget-object v0, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v0, p1}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;
.line 133
.local v0, "bindingTrackOutput":Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;
if-nez v0, :cond_2e
.line 135
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->sampleFormats:[Lcom/google/android/exoplayer2/Format;
if-nez v1, :cond_10
const/4 v1, 0x1
goto :goto_11
:cond_10
const/4 v1, 0x0
:goto_11
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 137
new-instance v1, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;
iget v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->primaryTrackType:I
if-ne p2, v2, :cond_1d
iget-object v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->primaryTrackManifestFormat:Lcom/google/android/exoplayer2/Format;
goto :goto_1e
:cond_1d
const/4 v2, 0x0
:goto_1e
invoke-direct {v1, p1, p2, v2}, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;-><init>(IILcom/google/android/exoplayer2/Format;)V
move-object v0, v1
.line 139
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->trackOutputProvider:Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;
iget-wide v2, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->endTimeUs:J
invoke-virtual {v0, v1, v2, v3}, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$BindingTrackOutput;->bind(Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper$TrackOutputProvider;J)V
.line 140
iget-object v1, p0, Lcom/google/android/exoplayer2/source/chunk/ChunkExtractorWrapper;->bindingTrackOutputs:Landroid/util/SparseArray;
invoke-virtual {v1, p1, v0}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
.line 142
:cond_2e
return-object v0
.end method