TrackFragment.smali
.class final Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;
.super Ljava/lang/Object;
.source "TrackFragment.java"
# instance fields
.field public atomPosition:J
.field public auxiliaryDataPosition:J
.field public dataPosition:J
.field public definesEncryptionData:Z
.field public header:Lcom/google/android/exoplayer2/extractor/mp4/DefaultSampleValues;
.field public nextFragmentDecodeTime:J
.field public sampleCompositionTimeOffsetTable:[I
.field public sampleCount:I
.field public sampleDecodingTimeTable:[J
.field public sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field public sampleEncryptionDataLength:I
.field public sampleEncryptionDataNeedsFill:Z
.field public sampleHasSubsampleEncryptionTable:[Z
.field public sampleIsSyncFrameTable:[Z
.field public sampleSizeTable:[I
.field public trackEncryptionBox:Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
.field public trunCount:I
.field public trunDataPosition:[J
.field public trunLength:[I
# direct methods
.method constructor <init>()V
.registers 1
.line 25
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public fillEncryptionData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 173
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v0, v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataLength:I
const/4 v2, 0x0
invoke-interface {p1, v0, v2, v1}, Lcom/google/android/exoplayer2/extractor/ExtractorInput;->readFully([BII)V
.line 174
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 175
iput-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataNeedsFill:Z
return-void
.end method
.method public fillEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;)V
.registers 5
.line 184
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v0, v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
iget v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataLength:I
const/4 v2, 0x0
invoke-virtual {p1, v0, v2, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 185
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 186
iput-boolean v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataNeedsFill:Z
return-void
.end method
.method public getSamplePresentationTime(I)J
.registers 7
.line 190
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleDecodingTimeTable:[J
aget-wide v1, v0, p1
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleCompositionTimeOffsetTable:[I
aget p1, v0, p1
int-to-long v3, p1
add-long/2addr v1, v3
return-wide v1
.end method
.method public initEncryptionData(I)V
.registers 3
.line 159
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
if-eqz v0, :cond_a
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v0
if-ge v0, p1, :cond_11
.line 160
:cond_a
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 162
:cond_11
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataLength:I
const/4 p1, 0x1
.line 163
iput-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->definesEncryptionData:Z
.line 164
iput-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataNeedsFill:Z
return-void
.end method
.method public initTables(II)V
.registers 4
.line 131
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->trunCount:I
.line 132
iput p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleCount:I
.line 133
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->trunLength:[I
if-eqz v0, :cond_b
array-length v0, v0
if-ge v0, p1, :cond_13
.line 134
:cond_b
new-array v0, p1, [J
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->trunDataPosition:[J
.line 135
new-array p1, p1, [I
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->trunLength:[I
.line 137
:cond_13
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleSizeTable:[I
if-eqz p1, :cond_1a
array-length p1, p1
if-ge p1, p2, :cond_32
:cond_1a
mul-int/lit8 p2, p2, 0x7d
.line 140
div-int/lit8 p2, p2, 0x64
.line 141
new-array p1, p2, [I
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleSizeTable:[I
.line 142
new-array p1, p2, [I
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleCompositionTimeOffsetTable:[I
.line 143
new-array p1, p2, [J
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleDecodingTimeTable:[J
.line 144
new-array p1, p2, [Z
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleIsSyncFrameTable:[Z
.line 145
new-array p1, p2, [Z
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleHasSubsampleEncryptionTable:[Z
:cond_32
return-void
.end method
.method public reset()V
.registers 4
const/4 v0, 0x0
.line 115
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->trunCount:I
const-wide/16 v1, 0x0
.line 116
iput-wide v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->nextFragmentDecodeTime:J
.line 117
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->definesEncryptionData:Z
.line 118
iput-boolean v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->sampleEncryptionDataNeedsFill:Z
const/4 v0, 0x0
.line 119
iput-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackFragment;->trackEncryptionBox:Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
return-void
.end method