TrackSampleTable.smali
.class final Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
.super Ljava/lang/Object;
.source "TrackSampleTable.java"
# instance fields
.field public final durationUs:J
.field public final flags:[I
.field public final maximumSize:I
.field public final offsets:[J
.field public final sampleCount:I
.field public final sizes:[I
.field public final timestampsUs:[J
.field public final track:Lcom/google/android/exoplayer2/extractor/mp4/Track;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/extractor/mp4/Track;[J[II[J[IJ)V
.registers 13
.param p1, "track" # Lcom/google/android/exoplayer2/extractor/mp4/Track;
.param p2, "offsets" # [J
.param p3, "sizes" # [I
.param p4, "maximumSize" # I
.param p5, "timestampsUs" # [J
.param p6, "flags" # [I
.param p7, "durationUs" # J
.line 54
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 55
array-length v0, p3
array-length v1, p5
const/4 v2, 0x0
const/4 v3, 0x1
if-ne v0, v1, :cond_b
const/4 v0, 0x1
goto :goto_c
:cond_b
const/4 v0, 0x0
:goto_c
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 56
array-length v0, p2
array-length v1, p5
if-ne v0, v1, :cond_15
const/4 v0, 0x1
goto :goto_16
:cond_15
const/4 v0, 0x0
:goto_16
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 57
array-length v0, p6
array-length v1, p5
if-ne v0, v1, :cond_1e
const/4 v2, 0x1
:cond_1e
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 59
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->track:Lcom/google/android/exoplayer2/extractor/mp4/Track;
.line 60
iput-object p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->offsets:[J
.line 61
iput-object p3, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->sizes:[I
.line 62
iput p4, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->maximumSize:I
.line 63
iput-object p5, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->timestampsUs:[J
.line 64
iput-object p6, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->flags:[I
.line 65
iput-wide p7, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->durationUs:J
.line 66
array-length v0, p2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->sampleCount:I
.line 67
array-length v0, p6
if-lez v0, :cond_3e
.line 68
array-length v0, p6
sub-int/2addr v0, v3
aget v1, p6, v0
const/high16 v2, 0x20000000
or-int/2addr v1, v2
aput v1, p6, v0
.line 70
:cond_3e
return-void
.end method
# virtual methods
.method public getIndexOfEarlierOrEqualSynchronizationSample(J)I
.registers 7
.param p1, "timeUs" # J
.line 82
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->timestampsUs:[J
const/4 v1, 0x1
const/4 v2, 0x0
invoke-static {v0, p1, p2, v1, v2}, Lcom/google/android/exoplayer2/util/Util;->binarySearchFloor([JJZZ)I
move-result v0
.line 83
.local v0, "startIndex":I
move v2, v0
.local v2, "i":I
:goto_9
if-ltz v2, :cond_16
.line 84
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->flags:[I
aget v3, v3, v2
and-int/2addr v3, v1
if-eqz v3, :cond_13
.line 85
return v2
.line 83
:cond_13
add-int/lit8 v2, v2, -0x1
goto :goto_9
.line 88
.end local v2 # "i":I
:cond_16
const/4 v1, -0x1
return v1
.end method
.method public getIndexOfLaterOrEqualSynchronizationSample(J)I
.registers 7
.param p1, "timeUs" # J
.line 99
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->timestampsUs:[J
const/4 v1, 0x1
const/4 v2, 0x0
invoke-static {v0, p1, p2, v1, v2}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v0
.line 100
.local v0, "startIndex":I
move v2, v0
.local v2, "i":I
:goto_9
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->timestampsUs:[J
array-length v3, v3
if-ge v2, v3, :cond_19
.line 101
iget-object v3, p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;->flags:[I
aget v3, v3, v2
and-int/2addr v3, v1
if-eqz v3, :cond_16
.line 102
return v2
.line 100
:cond_16
add-int/lit8 v2, v2, 0x1
goto :goto_9
.line 105
.end local v2 # "i":I
:cond_19
const/4 v1, -0x1
return v1
.end method